Closed mikelhm closed 10 months ago
Generally, we don't accept issues on UnsatisifiedLinkError
. However, your crash info is quite verbose, and here's the crue for you to further investigate.
Turn on MMKV's logging if you have turned it off before, and check if it has anything to say about this.
fail to register native methods for class
https://github.com/Tencent/MMKV/blob/master/Android/MMKV/mmkv/src/main/cpp/native-bridge.cpp#L88
By the way, the signature of allKeys()
has been changed in v1.3.1.
So it's possible that some of your other codes still use older versions of MMKV, and it might cause this error.
项目中的确用到了allKeys :val keys = mmkv.allKeys()
allKeys 签名改变?我看mmkv 还有这个接口allKeys(), 如果改变的话,变成什么样子呢
So it's possible that some of your other codes still use older versions of MMKV, and it might cause this error.
What you should do is check if that's the case. If so make them use the same version of MMKV.
2023-12-29 12:07:36.155 3531-3531 com.android.test A java_vm_ext.cc:579] JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.NoSuchMethodError: no native method "Lcom/tencent/mmkv/MMKV;.allKeys()[Ljava/lang/String;" java_vm_ext.cc:579] at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.Class) (Runtime.java:-2) java_vm_ext.cc:579] at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader) (Runtime.java:1121) java_vm_ext.cc:579] at void java.lang.Runtime.loadLibrary0(java.lang.ClassLoader, java.lang.Class, java.lang.String) (Runtime.java:1075) java_vm_ext.cc:579] at void java.lang.Runtime.loadLibrary0(java.lang.Class, java.lang.String) (Runtime.java:998) java_vm_ext.cc:579] at void java.lang.System.loadLibrary(java.lang.String) (System.java:1656) java_vm_ext.cc:579] at java.lang.String com.tencent.mmkv.MMKV.doInitialize(java.lang.String, java.lang.String, com.tencent.mmkv.MMKV$LibLoader, com.tencent.mmkv.MMKVLogLevel, boolean) (MMKV.java:223) java_vm_ext.cc:579] at java.lang.String com.tencent.mmkv.MMKV.initialize(android.content.Context, java.lang.String, com.tencent.mmkv.MMKV$LibLoader, com.tencent.mmkv.MMKVLogLevel, com.tencent.mmkv.MMKVHandler) (MMKV.java:205) java_vm_ext.cc:579] at java.lang.String com.tencent.mmkv.MMKV.initialize(android.content.Context, java.lang.String) (MMKV.java:145) java_vm_ext.cc:579] at java.lang.String com.android.test.storage.mmkv.MMKVPreferences$Companion.initialize(android.content.Context) (MMKVPreferences.kt:18) java_vm_ext.cc:579] at java.lang.String com.android.test.storage.mmkv.MMKVPreferences.initialize(android.content.Context) (MMKVPreferences.kt:-1) java_vm_ext.cc:579] at void com.android.test.base.MyApplication.attachBaseContext(android.content.Context) (MyApplication.java:23) java_vm_ext.cc:579] at void com.android.test.base.BaseApplication.attachBaseContext(android.content.Context) (BaseApplication.kt:18) java_vm_ext.cc:579] at void com.android.test.base.Application.attachBaseContext(android.content.Context) (MyApplication.java:285) java_vm_ext.cc:579] at void android.app.Application.attach(android.content.Context) (Application.java:340) java_vm_ext.cc:579] at android.app.Application android.app.Instrumentation.newApplication(java.lang.ClassLoader, java.lang.String, android.content.Context) (Instrumentation.java:1193) java_vm_ext.cc:579] at android.app.Application android.app.LoadedApk.makeApplication(boolean, android.app.Instrumentation) (LoadedApk.java:1393) java_vm_ext.cc:579] at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:7003) java_vm_ext.cc:579] at void android.app.ActivityThread.access$1800(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:254) java_vm_ext.cc:579] at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:2184) java_vm_ext.cc:579] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:106) java_vm_ext.cc:579] at boolean android.os.Looper.loopOnce(android.os.Looper, long, int) (Looper.java:233) java_vm_ext.cc:579] at void android.os.Looper.loop() (Looper.java:344) java_vm_ext.cc:579] at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:8212) java_vm_ext.cc:579] at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2) java_vm_ext.cc:579] at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:584) java_vm_ext.cc:579] at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1034) java_vm_ext.cc:579] java_vm_ext.cc:579] in call to NewGlobalRef java_vm_ext.cc:579] from java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.Class)