Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JNI DETECTED ERROR IN APPLICATION: fid == null #980

Closed
paopao-chen opened this issue Dec 1, 2022 · 5 comments
Closed

JNI DETECTED ERROR IN APPLICATION: fid == null #980

paopao-chen opened this issue Dec 1, 2022 · 5 comments

Comments

@paopao-chen
Copy link

Note:

An crash issue will be ignored & closed in a week without logs.

The language of MMKV

Java

The version of MMKV

v1.2.12

The platform of MMKV

Android

The installation of MMKV

Maven

What's the issue?

JNI DETECTED ERROR IN APPLICATION: fid == null

What's the log of MMKV when that happened?

backtrace:
#00 pc 0x0000000000078974 /apex/com.android.runtime/lib64/bionic/libc.so (abort+180)
#1 pc 0x00000000005667c0 /apex/com.android.art/lib64/libart.so (art::Runtime::Abort(char const*)+2320)
#2 pc 0x0000000000013ab0 /system/lib64/libbase.so (android::base::SetAborter(std::1::function<void (char const*)>&&)::$_3::invoke(char const*)+80)
#3 pc 0x0000000000013090 /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+320)
#4 pc 0x000000000038a228 /apex/com.android.art/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+2608)
#5 pc 0x00000000003c34bc /apex/com.android.art/lib64/libart.so (art::JNI::GetLongField(_JNIEnv*, _jobject*, _jfieldID*)+1636)
#6 pc 0x0000000000017730 /data/app/~~J3-3w03zr2VKYEmWw4yAgg==/com.dubox.drive-ThQsnUFA7RaVuBRih3wRtw==/lib/arm64/libmmkv.so
#7 pc 0x000000000010e934 /data/app/~~J3-3w03zr2VKYEmWw4yAgg==/com.dubox.drive-ThQsnUFA7RaVuBRih3wRtw==/oat/arm64/base.odex (art_jni_trampoline+132)
#8 pc 0x0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
#9 pc 0x00000000001a97e8 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
#10 pc 0x000000000031bfc8 /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376)
#11 pc 0x00000000003121b0 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+912)
#12 pc 0x0000000000689cb8 /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+576)
#13 pc 0x000000000012d914 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20)
#14 pc 0x0000000002dfa8de /data/app/~~J3-3w03zr2VKYEmWw4yAgg==/com.dubox.drive-ThQsnUFA7RaVuBRih3wRtw==/oat/arm64/base.vdex (com.tencent.mmkv.MMKV.apply+2)
#15 pc 0x0000000000689314 /apex/com.android.art/lib64/libart.so (MterpInvokeInterface+1812)
#16 pc 0x000000000012da14 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_interface+20)
#17 pc 0x0000000000fbe2a8 /data/app/~~J3-3w03zr2VKYEmWw4yAgg==/com.dubox.drive-ThQsnUFA7RaVuBRih3wRtw==/oat/arm64/base.vdex (com.dubox.drive.kernel.architecture.config.
.put+36)
#18 pc 0x000000000068e2f8 /apex/com.android.art/lib64/libart.so (MterpInvokeVirtualQuick+1344)
#19 pc 0x0000000000131594 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual_quick+20)
#20 pc 0x0000000000fbeb5e /data/app/~~J3-3w03zr2VKYEmWw4yAgg==/com.dubox.drive-ThQsnUFA7RaVuBRih3wRtw==/oat/arm64/base.vdex (com.dubox.drive.kernel.architecture.config..putLong+18)
#21 pc 0x000000000068e2f8 /apex/com.android.art/lib64/libart.so (MterpInvokeVirtualQuick+1344)
#22 pc 0x0000000000131594 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual_quick+20)
#23 pc 0x0000000000fbd98e /data/app/~~J3-3w03zr2VKYEmWw4yAgg==/com.dubox.drive-ThQsnUFA7RaVuBRih3wRtw==/oat/arm64/base.vdex (com.dubox.drive.kernel.architecture.
.aT+42)
#24 pc 0x000000000068a830 /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224)
#25 pc 0x000000000012d994 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
#26 pc 0x0000000000fbd9fa /data/app/~~J3-3w03zr2VKYEmWw4yAgg==/com.dubox.drive-ThQsnUFA7RaVuBRih3wRtw==/oat/arm64/base.vdex (com.dubox.drive.kernel.architecture..+46)
#27 pc 0x000000000068a830 /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224)
#28 pc 0x000000000012d994 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
#29 pc 0x00000000009df384 /data/app/~~J3-3w03zr2VKYEmWw4yAgg==/com.dubox.drive-ThQsnUFA7RaVuBRih3wRtw==/oat/arm64/base.vdex (com.dubox.drive.base.
._+244)
#30 pc 0x0000000000309458 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.14335664216214821213)+264)
#31 pc 0x00000000003117c8 /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+200)
#32 pc 0x0000000000312194 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+884)
#33 pc 0x000000000068a58c /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+548)
#34 pc 0x000000000012d994 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
#35 pc 0x00000000009a5a62 /data/app/~~J3-3w03zr2VKYEmWw4yAgg==/com.dubox.drive-ThQsnUFA7RaVuBRih3wRtw==/oat/arm64/base.vdex (com.dubox.drive..mJ+98)
#36 pc 0x0000000000689f58 /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+1248)
#37 pc 0x000000000012d914 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20)
#38 pc 0x00000000009a5934 /data/app/~~J3-3w03zr2VKYEmWw4yAgg==/com.dubox.drive-ThQsnUFA7RaVuBRih3wRtw==/oat/arm64/base.vdex (com.dubox.drive.
.init)
#39 pc 0x0000000000689f58 /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+1248)
#40 pc 0x000000000012d914 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20)
#41 pc 0x00000000009a56ba /data/app/~~J3-3w03zr2VKYEmWw4yAgg==/com.dubox.drive-ThQsnUFA7RaVuBRih3wRtw==/oat/arm64/base.vdex (com.dubox.drive.._+42)
#42 pc 0x000000000068a830 /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224)
#43 pc 0x000000000012d994 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
#44 pc 0x00000000009a59ac /data/app/~~J3-3w03zr2VKYEmWw4yAgg==/com.dubox.drive-ThQsnUFA7RaVuBRih3wRtw==/oat/arm64/base.vdex (com.dubox.drive.
.lambda$xyztpikiF-BQDJBOfzlKHbPrQYI)
#45 pc 0x000000000068a830 /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+1224)
#46 pc 0x000000000012d994 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20)
#47 pc 0x000000000099d1e0 /data/app/~~J3-3w03zr2VKYEmWw4yAgg==/com.dubox.drive-ThQsnUFA7RaVuBRih3wRtw==/oat/arm64/base.vdex (com.dubox.drive.-$$Lambda$__$xyztpikiF-BQDJBOfzlKHbPrQYI.run+4)
#48 pc 0x0000000000309458 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.14335664216214821213)+264)
#49 pc 0x0000000000676040 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+776)
#50 pc 0x000000000013cff8 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88)
#51 pc 0x000000000015f1c8 /apex/com.android.art/javalib/arm64/boot.oat (java.lang.Thread.run+72)
#52 pc 0x0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
#53 pc 0x00000000001a97e8 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
#54 pc 0x000000000055e35c /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValuesart::ArtMethod*(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+460)
#55 pc 0x00000000005ae18c /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1308)
#56 pc 0x00000000000db188 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
#57 pc 0x000000000007a9d0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

@lingol
Copy link
Collaborator

lingol commented Dec 2, 2022

Looks like you have proguard too much of MMKV's Java wrapper. You should respect MMKV's proguard rule.

@lingol
Copy link
Collaborator

lingol commented Dec 2, 2022

@paopao-chen
Copy link
Author

但是我的项目是maven形式引入的SDK,也没有再设置MMKV的proguard rule,难道要在项目的混淆文件中加上上述规则么?
我看堆栈包含apply(),有没有可能是我们错误使用了这个方法呢?

@lingol
Copy link
Collaborator

lingol commented Dec 2, 2022

You should check your proguarded build result, unzip your APK, see if the property nativeHandle of class MMKV is still there.

@paopao-chen
Copy link
Author

感谢解答,最终定位到是因为错误使用relinker异步初始化MMKV导致

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants