slint-ui/slint · error
JNI error: {e:#?}
Error message
JNI error: {e:#?} What it means
Error "JNI error: {e:#?}" thrown in slint-ui/slint.
Source
Thrown at internal/backends/android-activity/javahelper.rs:292
is_instance_of = {
JClassLoader,
}
}
bind_java_type! {
DexFileClassLoader => "dalvik.system.DexClassLoader",
constructors {
fn new(dex_path: JString, optimized_directory: JString, library_search_path: JString, parent: JClassLoader),
},
is_instance_of = {
JClassLoader,
}
}
// See `AttachmentExceptionPolicy::PreReThrowPostCatch` in `jni` crate.
#[track_caller]
pub fn print_jni_error(_app: &AndroidApp, e: jni::errors::Error) -> ! {
panic!("JNI error: {e:#?}")
}
#[allow(dead_code)]
pub struct JavaHelper(jni::refs::Global<SlintAndroidJavaHelper<'static>>, AndroidApp);
fn get_helper_class_loader(
env: &mut Env,
native_activity: &AndroidActivity<'_>,
) -> Result<&'static JClassLoader<'static>, jni::errors::Error> {
static DEX_CLASS_LOADER: OnceLock<jni::refs::Global<JClassLoader<'static>>> = OnceLock::new();
fn build_dex_class_loader<'local>(
env: &mut Env<'local>,
native_activity: &AndroidActivity<'_>,
) -> Result<JClassLoader<'local>, jni::errors::Error> {
let native_activity = env.new_local_ref(native_activity)?;
let app_context = AndroidContext::cast_local(env, native_activity)?;
let context_class_loader = app_context.get_class_loader(env)?;View on GitHub (pinned to 3fd8f2ec03)
Solutions
- Inspect the JNI error details in the panic message and fix the Java side call.
- Ensure the JavaVM and class loader used are valid for the current thread.
When it happens
Trigger: Thrown at internal/backends/android-activity/javahelper.rs:292 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of slint-ui/slint@3fd8f2ec03 (2026-08-19).
Data as JSON: /api/errors/6013662203b009f2.
Report an issue: GitHub.