首页 > 解决方案 > OSM 地图在 android 中加载平铺图像时随机崩溃

问题描述

应用程序在加载 OSM 地图平铺图像时随机崩溃,并在日志中连续显示错误

无法打开文件'/data/data/packageName/code_cache/.overlay/base.apk/assets/Mapnik/14/4294/6311.png':没有这样的文件或目录

这主要是在 Android 11 上发现的

控制台将崩溃记录为: 回溯:#00 pc 000000000003c200 /system/lib64/libandroidfw.so (android::AssetManager2::Open(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const& , android::Asset::AccessMode) const+140) #00 pc 0000000000121e14 /system/lib64/libandroid_runtime.so (android::NativeOpenAsset(_JNIEnv*, _jclass*, long, _jstring*, int)+484) #00 pc 00000000002351ac /system/framework/arm64/boot-framework.oat (art_jni_trampoline+188) #00 pc 0000000002081258 /memfd:jit-cache (android.content.res.AssetManager.open+136) #00 pc 0000000002095754 /memfd:jit缓存 (android.content.res.AssetManager.open+52) #00 pc 000000000208dd64 /memfd:jit-cache (org.osmdroid.tileprovider.modules.MapTileAssetsProvider$TileLoader.loadTile+260) #00 pc 000000000208d984 /memfd:jit-缓存(org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.loadTileIfReachable+116) #00 pc 0000000002053c1c /memfd:jit-cache (org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run+636) #00 pc 0000000002080108 /memfd:jit-cache (java.cache concurrent.ThreadPoolExecutor.runWorker+408) #00 pc 0000000000134564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) #00 pc 00000000001a9a78 /apex/com.android.art/lib64/libart.so ( art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) #00 pc 000000000032129c /apex/com.android.art/lib64/libart .so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) #00 pc 00000000003175c8 /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*)+996​​) #00 pc 00000000006862d8 /apex/com.android.art/ lib64/libart.so (MterpInvokeVirtual+848) #00 pc 000000000012e814 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) #00 pc 00000000001f8eb0 /apex/com.android.art/javalib/core- oj.jar (java.util.concurrent.ThreadPoolExecutor$Worker.run+4) #00 pc 0000000000687fb0 /apex/com.android.art/lib64/libart.so (MterpInvokeInterface+1808) #00 pc 000000000012ea14 /apex/com. android.art/lib64/libart.so (mterp_op_invoke_interface+20) #00 pc 0000000000003330 [anon:dalvik-/apex/com.android.art/javalib/core-oj.jar-transformed] (java.lang.Thread.run +8) #00 pc 000000000030ebc4 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16619280533006879875)+268) #00 pc 0000000000674d5c /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) # 00 件 000000000013dff8 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) #00 件 0000000000134564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) #001 件 0070000009 apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) #00 pc 000000000055e278 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValuesart::ArtMethod*(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+ 460) #00 个人电脑 00000000005ada3c /apex/com.android。art/lib64/libart.so (art::Thread::CreateCallback(void*)+1308) #00 pc 00000000000eb7a8 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64 ) #00 pc 000000000008bc8c /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

标签: javaandroiddictionarykotlinosmdroid

解决方案


推荐阅读