-
Notifications
You must be signed in to change notification settings - Fork 114
[jni_flutter] JNI library not available in Flutter apps (release mode only) #3280
Copy link
Copy link
Open
Description
I have migrated my JNI plugins to use the newly-released jni_flutter package.
After that, my app started crashing upon trying to call a function from the jni_flutter library, but only in release mode. In both debug and profile modes it works fine.
Below is the native stack trace. materium is my app's package name. device_info_ffi is one of my JNI-based plugins.
D/FlutterArchivePlugin( 6559): onAttachedToEngine - IN
D/FlutterArchivePlugin( 6559): doOnAttachedToEngine - IN
D/FlutterArchivePlugin( 6559): doOnAttachedToEngine - OUT
D/FlutterArchivePlugin( 6559): onAttachedToEngine - OUT
I/flutter ( 6559): [IMPORTANT:flutter/shell/platform/android/android_context_gl_impeller.cc(104)] Using the Impeller rendering backend (OpenGLES).
E/flutter ( 6559): [ERROR:flutter/runtime/dart_vm_initializer.cc(40)] Unhandled Exception: Exception in Java: java.lang.ClassNotFoundException: Didn't find class "com/github/dart_lang/jni_flutter/JniFlutterPlugin" on path: DexPathList[[zip file "/data/app/~~3b1MtVYmZULZZp-_uzZIYA==/dev.deminearchiver.materium-n1bZdR0DgA4GRfp4hSSg1A==/base.apk"],nativeLibraryDirectories=[/data/app/~~3b1MtVYmZULZZp-_uzZIYA==/dev.deminearchiver.materium-n1bZdR0DgA4GRfp4hSSg1A==/lib/x86_64, /data/app/~~3b1MtVYmZULZZp-_uzZIYA==/dev.deminearchiver.materium-n1bZdR0DgA4GRfp4hSSg1A==/base.apk!/lib/x86_64, /system/lib64, /system_ext/lib64]]
E/flutter ( 6559): java.lang.ClassNotFoundException: Didn't find class "com/github/dart_lang/jni_flutter/JniFlutterPlugin" on path: DexPathList[[zip file "/data/app/~~3b1MtVYmZULZZp-_uzZIYA==/dev.deminearchiver.materium-n1bZdR0DgA4GRfp4hSSg1A==/base.apk"],nativeLibraryDirectories=[/data/app/~~3b1MtVYmZULZZp-_uzZIYA==/dev.deminearchiver.materium-n1bZdR0DgA4GRfp4hSSg1A==/lib/x86_64, /data/app/~~3b1MtVYmZULZZp-_uzZIYA==/dev.deminearchiver.materium-n1bZdR0DgA4GRfp4hSSg1A==/base.apk!/lib/x86_64, /system/lib64, /system_ext/lib64]]
E/flutter ( 6559): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
E/flutter ( 6559): at java.lang.ClassLoader.loadClass(ClassLoader.java:642)
E/flutter ( 6559): at java.lang.ClassLoader.loadClass(ClassLoader.java:578)
E/flutter ( 6559): at android.os.MessageQueue.nativePollOnce(Native Method)
E/flutter ( 6559): at android.os.MessageQueue.nextLegacy(MessageQueue.java:985)
E/flutter ( 6559): at android.os.MessageQueue.next(MessageQueue.java:1094)
E/flutter ( 6559): at android.os.Looper.loopOnce(Looper.java:197)
E/flutter ( 6559): at android.os.Looper.loop(Looper.java:367)
E/flutter ( 6559): at android.app.ActivityThread.main(ActivityThread.java:9287)
E/flutter ( 6559): at java.lang.reflect.Method.invoke(Native Method)
E/flutter ( 6559): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:566)
E/flutter ( 6559): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)
E/flutter ( 6559):
E/flutter ( 6559): #0 Jni.throwException (package:jni/src/jni.dart:209)
E/flutter ( 6559): #1 _check (package:jni/src/accessors.dart:16)
E/flutter ( 6559): #2 JniClassLookupResultMethods.checkedClassRef (package:jni/src/accessors.dart:110)
E/flutter ( 6559): #3 Jni.findClass (package:jni/src/jni.dart:197)
E/flutter ( 6559): #4 new JClass.forName (package:jni/src/jclass.dart:17)
E/flutter ( 6559): #5 JniFlutterPlugin._class (package:jni_flutter/src/generated_plugin.dart:49)
E/flutter ( 6559): #6 JniFlutterPlugin.applicationContext (package:jni_flutter/src/generated_plugin.dart)
E/flutter ( 6559): #7 androidApplicationContext (package:jni_flutter/src/jni_flutter.dart:14)
E/flutter ( 6559): #8 DeviceInfoAndroid._androidDeviceInfo (package:device_info_ffi/src/device_info_android.dart:374)
E/flutter ( 6559): #9 DeviceInfoAndroid.deviceInfo (package:device_info_ffi/src/device_info_android.dart:368)
E/flutter ( 6559): #10 DeviceInfo.deviceInfo (package:device_info_ffi/src/device_info.dart:5)
E/flutter ( 6559): #11 DeviceInfo.androidInfo (package:device_info_ffi/src/device_info.dart:7)
E/flutter ( 6559): #12 main (package:materium/main.dart:173)
E/flutter ( 6559): <asynchronous suspension>
E/flutter ( 6559):
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels