java - 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)
解决方案
推荐阅读
- c++ - Qt:相当于 utf-8 字符的 getch()
- java - 当任何任何参数用于方法时,Mockito 存根返回 null
- android - Android Kotlin:在 DAO 中使用“暂停”时出错 - 遵循 CodeLabs 指南
- python - 在 python (pandas) 中展开数据框中的列
- html - CSS 覆盖 !important
- eclipse - 如何以编程方式加载具有跨项目依赖关系的 Xtext 项目
- python - 我应该如何打开作为 Ui 的 python 文件
- c# - SQL Query 不能使用别名,但可以使用索引
- bash - 使用 bash 将文件输出到数组中
- python - Gtk3 按钮 - 减少内部标签的填充