{"record":{"id":"6013662203b009f2","repo":"slint-ui/slint","slug":"jni-error-e","errorCode":null,"errorMessage":"JNI error: {e:#?}","messagePattern":"JNI error: (.+?)","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/backends/android-activity/javahelper.rs","lineNumber":292,"sourceCode":"    is_instance_of = {\n        JClassLoader,\n    }\n}\n\nbind_java_type! {\n    DexFileClassLoader => \"dalvik.system.DexClassLoader\",\n    constructors {\n        fn new(dex_path: JString, optimized_directory: JString, library_search_path: JString, parent: JClassLoader),\n    },\n    is_instance_of = {\n        JClassLoader,\n    }\n}\n\n// See `AttachmentExceptionPolicy::PreReThrowPostCatch` in `jni` crate.\n#[track_caller]\npub fn print_jni_error(_app: &AndroidApp, e: jni::errors::Error) -> ! {\n    panic!(\"JNI error: {e:#?}\")\n}\n\n#[allow(dead_code)]\npub struct JavaHelper(jni::refs::Global<SlintAndroidJavaHelper<'static>>, AndroidApp);\n\nfn get_helper_class_loader(\n    env: &mut Env,\n    native_activity: &AndroidActivity<'_>,\n) -> Result<&'static JClassLoader<'static>, jni::errors::Error> {\n    static DEX_CLASS_LOADER: OnceLock<jni::refs::Global<JClassLoader<'static>>> = OnceLock::new();\n\n    fn build_dex_class_loader<'local>(\n        env: &mut Env<'local>,\n        native_activity: &AndroidActivity<'_>,\n    ) -> Result<JClassLoader<'local>, jni::errors::Error> {\n        let native_activity = env.new_local_ref(native_activity)?;\n        let app_context = AndroidContext::cast_local(env, native_activity)?;\n        let context_class_loader = app_context.get_class_loader(env)?;","sourceCodeStart":274,"sourceCodeEnd":310,"githubUrl":"https://github.com/slint-ui/slint/blob/3fd8f2ec03c2aa8a95d5f4b9daa299c7b8bf4016/internal/backends/android-activity/javahelper.rs#L274-L310","documentation":"Error \"JNI error: {e:#?}\" thrown in slint-ui/slint.","triggerScenarios":"Thrown at internal/backends/android-activity/javahelper.rs:292 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3fd8f2ec03c2aa8a95d5f4b9daa299c7b8bf4016","analyzedAt":"2026-08-19T23:23:16.610Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}