1 缩放过程中的问题 必现
2 错误日志
2020-08-22 12:40:00.673 31812-31839/com.amap.apis.cluster A/Bitmap: Error, cannot access an invalid/free'd bitmap here!
--------- beginning of crash
2020-08-22 12:40:00.674 31812-31839/com.amap.apis.cluster A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 31839 (GLThread 4294), pid 31812 (ap.apis.cluster)
2020-08-22 12:40:00.797 31888-31888/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2020-08-22 12:40:00.797 31888-31888/? A/DEBUG: Build fingerprint: 'xiaomi/onc/onc:9/PKQ1.181021.001/V10.3.1.0.PFLCNXM:user/release-keys'
2020-08-22 12:40:00.797 31888-31888/? A/DEBUG: Revision: '0'
2020-08-22 12:40:00.797 31888-31888/? A/DEBUG: ABI: 'arm'
2020-08-22 12:40:00.797 31888-31888/? A/DEBUG: pid: 31812, tid: 31839, name: GLThread 4294 >>> com.amap.apis.cluster <<<
2020-08-22 12:40:00.797 31888-31888/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
2020-08-22 12:40:00.797 31888-31888/? A/DEBUG: Abort message: 'Error, cannot access an invalid/free'd bitmap here!'
2020-08-22 12:40:00.797 31888-31888/? A/DEBUG: r0 00000000 r1 00007c5f r2 00000006 r3 00000008
2020-08-22 12:40:00.797 31888-31888/? A/DEBUG: r4 00007c44 r5 00007c5f r6 ce37d6e4 r7 0000010c
2020-08-22 12:40:00.797 31888-31888/? A/DEBUG: r8 00000000 r9 e14bd400 r10 ce391990 r11 00000000
2020-08-22 12:40:00.797 31888-31888/? A/DEBUG: ip ebfb43d8 sp ce37d6d0 lr ebf23621 pc ebf1ae5e
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: backtrace:
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #00 pc 0001ce5e /system/lib/libc.so (abort+58)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #01 pc 00007e19 /system/lib/liblog.so (__android_log_assert+156)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #02 pc 000d38e5 /system/lib/libandroid_runtime.so (Bitmap_sameAs(_JNIEnv*, _jobject*, long long, long long)+308)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #03 pc 00ee7419 /system/framework/arm/boot-framework.oat (offset 0x9c8000) (android.database.sqlite.SQLiteConnection.nativeExecuteForBlobFileDescriptor [DEDUPED]+120)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #04 pc 0003393f /dev/ashmem/dalvik-jit-code-cache (deleted) (android.graphics.Bitmap.sameAs+158)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #05 pc 00032205 /dev/ashmem/dalvik-jit-code-cache (deleted) (com.amap.api.maps.model.BitmapDescriptor.equals+292)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #06 pc 00031feb /dev/ashmem/dalvik-jit-code-cache (deleted) (com.amap.api.mapcore.util.c.getTextureItem+314)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #07 pc 0040e375 /system/lib/libart.so (art_quick_invoke_stub_internal+68)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #08 pc 003e7f21 /system/lib/libart.so (art_quick_invoke_stub+224)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #09 pc 000a1415 /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #10 pc 001e6691 /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+236)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #11 pc 001e117f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+814)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #12 pc 003e2b7b /system/lib/libart.so (MterpInvokeVirtual+442)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #13 pc 00401194 /system/lib/libart.so (ExecuteMterpImpl+14228)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #14 pc 001bc84e /data/app/com.amap.apis.cluster-6fZIjKrpPRekRUr2DtpYZA==/oat/arm/base.vdex (com.amap.api.mapcore.util.c.getTextureItem+2)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #15 pc 001c58fb /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3776544728+378)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #16 pc 001c9f27 /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+82)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #17 pc 003d6661 /system/lib/libart.so (artQuickToInterpreterBridge+880)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #18 pc 004128ff /system/lib/libart.so (art_quick_to_interpreter_bridge+30)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #19 pc 0001f423 /dev/ashmem/dalvik-jit-code-cache (deleted) (com.amap.api.mapcore.util.cu.loadTexture+442)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #20 pc 00088ae5 /data/app/com.amap.apis.cluster-6fZIjKrpPRekRUr2DtpYZA==/oat/arm/base.odex (offset 0x4f000) (com.amap.api.mapcore.util.v.a+1196)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #21 pc 000db8af /data/app/com.amap.apis.cluster-6fZIjKrpPRekRUr2DtpYZA==/oat/arm/base.odex (offset 0x4f000) (com.amap.api.mapcore.util.c.afterDrawLabel+374)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #22 pc 000bdf03 /data/app/com.amap.apis.cluster-6fZIjKrpPRekRUr2DtpYZA==/oat/arm/base.odex (offset 0x4f000) (com.autonavi.base.ae.gmap.GLMapEngine.onMapRender+178)
2020-08-22 12:40:01.129 31888-31888/? A/DEBUG: #23 pc 0040e375 /system/lib/libart.so (art_quick_invoke_stub_internal+68)
2020-08-22 12:40:01.130 31888-31888/? A/DEBUG: #24 pc 003e7f21 /system/lib/libart.so (art_quick_invoke_stub+224)
2020-08-22 12:40:01.130 31888-31888/? A/DEBUG: #25 pc 000a1415 /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136)
2020-08-22 12:40:01.130 31888-31888/? A/DEBUG: #26 pc 0034876d /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52)
2020-08-22 12:40:01.130 31888-31888/? A/DEBUG: #27 pc 003496e1 /system/lib/libart.so (art::InvokeVirtualOrInterfaceWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+320)
2020-08-22 12:40:01.130 31888-31888/? A/DEBUG: #28 pc 00274503 /system/lib/libart.so (art::JNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+450)
2020-08-22 12:40:01.130 31888-31888/? A/DEBUG: #29 pc 000c6591 /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallMethodV(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, std::__va_list, art::Primitive::Type, art::InvokeType)+1124)
2020-08-22 12:40:01.130 31888-31888/? A/DEBUG: #30 pc 000b7d45 /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+44)
2020-08-22 12:40:01.130 31888-31888/? A/DEBUG: #31 pc 0002851b <anonymous:cd7ec000>
2020-08-22 12:40:01.869 31888-31888/? E/crash_dump32: cannot open libmiuindbg.so: No such file or directory
2020-08-22 12:40:01.870 1018-1018/? E//system/bin/tombstoned: Tombstone written to: /data/tombstones/tombstone_01
2020-08-22 12:40:02.252 1811-2100/? E/InputDispatcher: channel '302a574 com.amap.apis.cluster/com.amap.apis.cluster.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
2020-08-22 12:40:02.289 1811-2191/? E/ActivityTrigger: activityResumeTrigger: not whiteListedcom.miui.home/com.miui.home.launcher.Launcher/41521515
相关代码
@Override
public Drawable getDrawAble(int clusterNum) {
Log.i("MainActivity-TAG", "getDrawAble: ");
int radius = dp2px(getApplicationContext(), 80);
if (clusterNum == 1) {
Drawable bitmapDrawable = mBackDrawAbles.get(1);
if (bitmapDrawable == null) {
bitmapDrawable =
getApplication().getResources().getDrawable(
R.drawable.icon_openmap_mark);
mBackDrawAbles.put(1, bitmapDrawable);
}
return bitmapDrawable;
} else if (clusterNum < 5) {
Drawable bitmapDrawable = mBackDrawAbles.get(2);
if (bitmapDrawable == null) {
bitmapDrawable = new BitmapDrawable(null, drawCircle(radius,
Color.argb(159, 210, 154, 6)));
mBackDrawAbles.put(2, bitmapDrawable);
}
return bitmapDrawable;
} else if (clusterNum < 10) {
Drawable bitmapDrawable = mBackDrawAbles.get(3);
if (bitmapDrawable == null) {
bitmapDrawable = new BitmapDrawable(null, drawCircle(radius,
Color.argb(199, 217, 114, 0)));
mBackDrawAbles.put(3, bitmapDrawable);
}
return bitmapDrawable;
} else {
Drawable bitmapDrawable = mBackDrawAbles.get(4);
if (bitmapDrawable == null) {
bitmapDrawable = new BitmapDrawable(null, drawCircle(radius,
Color.argb(235, 215, 66, 2)));
mBackDrawAbles.put(4, bitmapDrawable);
}
return bitmapDrawable;
}
}
private Bitmap drawCircle(int radius, int color) {
Log.i("MainActivity-TAG", "drawCircle: ");
Bitmap bitmap = Bitmap.createBitmap(radius * 2, radius * 2,
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
RectF rectF = new RectF(0, 0, radius * 2, radius * 2);
paint.setColor(color);
canvas.drawArc(rectF, 0, 360, true, paint);
return bitmap;
}
网上的其他办法都试了 不知道怎么修改;