Android接入amap高德地圖SDK時報錯:
JNI DETECTED ERROR IN APPLICATION: fid == null
in call to GetBooleanField
from java.lang.Object com.autonavi.base.amap.mapcore.AMapNativeGlOverlayLayer.nativeGetNativeOverlayProperties(java.lang.String, java.lang.String, java.lang.Object[])
No pending exception expected: java.lang.NoSuchFieldError: no "Z" field "value" in class "Ljava/lang/Boolean;" or its superclasses
解決方案:targetSdkVersion 28 或 < 28
當然,這是當下時間段(2021.04)和當前依賴 implementation 'com.amap.api:3dmap:7.9.0' (對應.so檔案:libAMapSDK_MAP_v7_9_0.so)的解決方案,當前最新版本的高德地圖SDK提供的.so庫檔案不兼容 targetSdkVersion 28以上的API level,但有可能經過一段時間,官方SDK提供的.so庫更新后支持了 targetSdkVersion 29 或更高版本,這個錯誤應該也就不會出現了,
問題詳情如下:
build.gradle中引入的依賴如下:
//定位功能
implementation 'com.amap.api:location:5.3.1'
//3D地圖(含.so庫)
implementation 'com.amap.api:3dmap:7.9.0'
//地圖搜索
implementation 'com.amap.api:search:7.9.0'
添加高德地圖常用功能,在模擬器上沒有任何問題,
在真機上,地圖能正常展示出來,但是放大縮小拖動時會崩潰閃退,(剛接入時也沒有問題,還除錯了一個小時UI呢,可過了個周末,就出這個問題了,郁悶!)
詳細報錯日志如下:
2021-04-06 18:25:51.554 1763-1763/com.amituo.bian A/com.amituo.bia: java_vm_ext.cc:570] JNI DETECTED ERROR IN APPLICATION: fid == null
2021-04-06 18:25:51.554 1763-1763/com.amituo.bian A/com.amituo.bia: java_vm_ext.cc:570] in call to GetBooleanField
2021-04-06 18:25:51.554 1763-1763/com.amituo.bian A/com.amituo.bia: java_vm_ext.cc:570] from java.lang.Object com.autonavi.base.amap.mapcore.AMapNativeGlOverlayLayer.nativeGetNativeOverlayProperties(java.lang.String, java.lang.String, java.lang.Object[])
2021-04-06 18:25:51.652 1763-1763/com.amituo.bian A/com.amituo.bia: thread.cc:2544] No pending exception expected: java.lang.NoSuchFieldError: no "Z" field "value" in class "Ljava/lang/Boolean;" or its superclasses
2021-04-06 18:25:51.652 1763-1763/com.amituo.bian A/com.amituo.bia: thread.cc:2544] at java.lang.Object com.autonavi.base.amap.mapcore.AMapNativeGlOverlayLayer.nativeGetNativeOverlayProperties(java.lang.String, java.lang.String, java.lang.Object[]) (AMapNativeGlOverlayLayer.java:-2)
2021-04-06 18:25:51.652 1763-1763/com.amituo.bian A/com.amituo.bia: thread.cc:2544] at java.lang.Object com.autonavi.base.amap.mapcore.AMapNativeGlOverlayLayer.getNativeProperties(java.lang.String, java.lang.String, java.lang.Object[]) (AMapNativeGlOverlayLayer.java:223)
2021-04-06 18:25:51.652 1763-1763/com.amituo.bian A/com.amituo.bia: thread.cc:2544] at void com.amap.api.mapcore.util.q.setFlingState(boolean) (GlOverlayLayer.java:844)
2021-04-06 18:25:51.652 1763-1763/com.amituo.bian A/com.amituo.bia: thread.cc:2544] at void com.amap.api.mapcore.util.b$1.handleMessage(android.os.Message) (AMapDelegateImp.java:580)
2021-04-06 18:25:51.652 1763-1763/com.amituo.bian A/com.amituo.bia: thread.cc:2544] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:110)
2021-04-06 18:25:51.652 1763-1763/com.amituo.bian A/com.amituo.bia: thread.cc:2544] at void android.os.Looper.loop() (Looper.java:219)
2021-04-06 18:25:51.652 1763-1763/com.amituo.bian A/com.amituo.bia: thread.cc:2544] at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:8387)
2021-04-06 18:25:51.652 1763-1763/com.amituo.bian A/com.amituo.bia: thread.cc:2544] at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2021-04-06 18:25:51.653 1763-1763/com.amituo.bian A/com.amituo.bia: thread.cc:2544] at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:513)
2021-04-06 18:25:51.653 1763-1763/com.amituo.bian A/com.amituo.bia: thread.cc:2544] at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1055)
2021-04-06 18:25:51.653 1763-1763/com.amituo.bian A/com.amituo.bia: thread.cc:2544]
2021-04-06 18:25:51.803 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] Runtime aborting --- recursively, so no thread-specific detail!
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #00 pc 0030b017 /apex/com.android.runtime/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+78)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #01 pc 003959bf /apex/com.android.runtime/lib/libart.so (art::Runtime::Abort(char const*)+1254)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #02 pc 000085e1 /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+488)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #03 pc 003ccd27 /apex/com.android.runtime/lib/libart.so (art::Thread::AssertNoPendingException() const+818)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #04 pc 00101e27 /apex/com.android.runtime/lib/libart.so (art::ClassLinker::FindClass(art::Thread*, char const*, art::Handle<art::mirror::ClassLoader>)+30)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #05 pc 000f40ef /apex/com.android.runtime/lib/libart.so (art::ClassLinker::DoResolveType(art::dex::TypeIndex, art::Handle<art::mirror::DexCache>, art::Handle<art::mirror::ClassLoader>)+122)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #06 pc 003eb40d /apex/com.android.runtime/lib/libart.so (_ZN3art8verifier4impl12_GLOBAL__N_114MethodVerifierILb0EE6VerifyEv$09bf97eb2c0d684adb6d215f7005036e+1164)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #07 pc 003ee163 /apex/com.android.runtime/lib/libart.so (art::verifier::MethodVerifier::FindLocksAtDexPc(art::ArtMethod*, unsigned int, std::__1::vector<art::verifier::MethodVerifier::DexLockInfo, std::__1::allocator<art::verifier::MethodVerifier::DexLockInfo>>*, unsigned int)+470)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #08 pc 00308421 /apex/com.android.runtime/lib/libart.so (art::Monitor::VisitLocks(art::StackVisitor*, void (*)(art::ObjPtr<art::mirror::Object>, void*), void*, bool)+408)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #09 pc 00308f95 /apex/com.android.runtime/lib/libart.so (art::MonitorObjectsStackVisitor::VisitFrame()+96)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #10 pc 003af4b3 /apex/com.android.runtime/lib/libart.so (_ZN3art12StackVisitor9WalkStackILNS0_16CountTransitionsE0EEEvb+406)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #11 pc 003cbef1 /apex/com.android.runtime/lib/libart.so (art::Thread::DumpJavaStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, bool) const+348)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #12 pc 003c8b2b /apex/com.android.runtime/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+374)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #13 pc 003c52df /apex/com.android.runtime/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+34)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #14 pc 003de021 /apex/com.android.runtime/lib/libart.so (art::DumpCheckpoint::Run(art::Thread*)+600)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #15 pc 003d8bcd /apex/com.android.runtime/lib/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+948)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #16 pc 003d8063 /apex/com.android.runtime/lib/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool)+766)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #17 pc 00395a07 /apex/com.android.runtime/lib/libart.so (art::Runtime::Abort(char const*)+1326)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #18 pc 000085e1 /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+488)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #19 pc 00294167 /apex/com.android.runtime/lib/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1206)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #20 pc 002b8fab /apex/com.android.runtime/lib/libart.so (art::JNI::GetBooleanField(_JNIEnv*, _jobject*, _jfieldID*)+626)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #21 pc 00034edf /data/app/com.amituo.bian-ZaFMEwipB6EjwYt-w6s7lA==/lib/arm/libAMapSDK_MAP_v7_9_0.so (???)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #22 pc 0003e00b /data/app/com.amituo.bian-ZaFMEwipB6EjwYt-w6s7lA==/lib/arm/libAMapSDK_MAP_v7_9_0.so (???)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #23 pc 0004ed9d /data/app/com.amituo.bian-ZaFMEwipB6EjwYt-w6s7lA==/lib/arm/libAMapSDK_MAP_v7_9_0.so (???)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #24 pc 00047207 /data/app/com.amituo.bian-ZaFMEwipB6EjwYt-w6s7lA==/lib/arm/libAMapSDK_MAP_v7_9_0.so (???)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #25 pc 000e6519 /apex/com.android.runtime/lib/libart.so (art_quick_generic_jni_trampoline+40)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #26 pc 000e1bc5 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #27 pc 00450c7b /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub+250)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #28 pc 000e9ff5 /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+160)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #29 pc 0021b7e3 /apex/com.android.runtime/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+274)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #30 pc 0021794b /apex/com.android.runtime/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+802)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #31 pc 00447d2f /apex/com.android.runtime/lib/libart.so (MterpInvokeDirect+358)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #32 pc 000dc914 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_direct+20)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #33 pc 00463edc [anon:dalvik-classes.dex extracted in memory from /data/app/com.amituo.bian-ZaFMEwipB6EjwYt-w6s7lA==/base.apk] (com.autonavi.base.amap.mapcore.AMapNativeGlOverlayLayer.getNativeProperties+36)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #34 pc 00446089 /apex/com.android.runtime/lib/libart.so (MterpInvokeVirtual+1184)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #35 pc 000dc814 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_virtual+20)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #36 pc 003f90d8 [anon:dalvik-classes.dex extracted in memory from /data/app/com.amituo.bian-ZaFMEwipB6EjwYt-w6s7lA==/base.apk] (com.amap.api.mapcore.util.q.setFlingState+36)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #37 pc 004475a5 /apex/com.android.runtime/lib/libart.so (MterpInvokeInterface+1468)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #38 pc 000dca14 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_interface+20)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #39 pc 00384af0 [anon:dalvik-classes.dex extracted in memory from /data/app/com.amituo.bian-ZaFMEwipB6EjwYt-w6s7lA==/base.apk] (com.amap.api.mapcore.util.b$1.handleMessage+1892)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #40 pc 001f7aed /apex/com.android.runtime/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.17840058838137626416+268)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #41 pc 001fc2a9 /apex/com.android.runtime/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+120)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #42 pc 0043a16d /apex/com.android.runtime/lib/libart.so (artQuickToInterpreterBridge+832)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #43 pc 000e65a1 /apex/com.android.runtime/lib/libart.so (art_quick_to_interpreter_bridge+32)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #44 pc 0206e0c7 /memfd:/jit-cache (deleted) (android.os.Handler.dispatchMessage+134)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #45 pc 000e1bc5 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #46 pc 00450c7b /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub+250)
2021-04-06 18:25:51.804 1763-1763/com.amituo.bian A/com.amituo.bia: runtime.cc:663] #47 pc 000e9ff5 /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+160)
最初以為是.so庫的問題,官方開發檔案上也有說 .so 庫檔案的類似問題,但是經驗證,通過添加依賴 implementation 'com.amap.api:3dmap:7.9.0'中包含的.so庫 和 jniLibs 中添加對應的.so庫,都是能正常打包進apk,
最后,對比高德地圖官方demo,發現 targetSdkVersion 28 或 小于28的才好使,(花費了一天的時間,走了好多彎路,才發現這個問題 -_-|| )
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/274090.html
標籤:其他
上一篇:Android Activity的啟動模式及對生命周期的影響
下一篇:android9系統android studio專案改成用android.mk編譯參考v7包第三方jar包,aar檔案和so庫檔案
