我试图在Android 6.0上调查我的本机内存使用情况,但是当我尝试使用malloc内存时,我的应用程序一直在崩溃。步骤如下:
我从CM rom下载了libc_malloc_debug_leak.so用于我的手机(Nexus 5)
设置libc.debug.malloc 1。
重启手机。
安装我的应用。
在4.4
之类的旧Android设备上,效果非常好,但是当我在Android 6.0
上执行此操作时,我的应用仍会崩溃。我不知道为什么会这样,以及如何找到答案。有人可以帮忙吗?
顺便说一句,我使用的是ndk-r9c
,我知道最新的是r11
,但升级到r11
需要做很多工作,我不确定这是不是Stack frame #00 pc 001e7abe /data/app/com.myapp-1/lib/arm/libmylib_ol.so: Routine __gabixx::__default_terminate() at libgcc2.c:?
Stack frame #01 pc 001e7acf /data/app/com.myapp-1/lib/arm/libmylib_ol.so: Routine __gabixx::__terminate(void (*)()) at libgcc2.c:?
Stack frame #02 pc 001e7b2b /data/app/com.myapp-1/lib/arm/libmylib_ol.so: Routine std::terminate() at libgcc2.c:?
Stack frame #03 pc 001e729b /data/app/com.myapp-1/lib/arm/libmylib_ol.so: Routine __cxxabiv1::call_terminate(_Unwind_Control_Block*) at libgcc2.c:?
Stack frame #04 pc 001e73f7 /data/app/com.myapp-1/lib/arm/libmylib_ol.so: Routine __cxxabiv1::scanEHTable(__cxxabiv1::ScanResultInternal&, int, bool, _Unwind_Control_Block*, _Unwind_Context*) at libgcc2.c:?
Stack frame #05 pc 001e7921 /data/app/com.myapp-1/lib/arm/libmylib_ol.so: Routine __gxx_personality_v0 at libgcc2.c:?
Stack frame #06 pc 00008a03 /system/lib/libc_malloc_debug_leak.so (_Unwind_Backtrace+130)
Stack frame #07 pc 000060ef /system/lib/libc_malloc_debug_leak.so
Stack frame #08 pc 00006b69 /system/lib/libc_malloc_debug_leak.so (leak_malloc+84)
原因,我会在寻找一个人回答我的问题时尝试。转储的崩溃日志如下:
new Thread(new Runnable() {
@Override
public void run() {
Glide.get(MainActivity.this).clearDiskCache();
}
}).start();
答案 0 :(得分:0)
你以前很幸运。您不能从一个构建中获取非官方系统库,并期望它在另一个构建上工作。没有强制执行该库的工作方式与同一设备的补丁版本兼容。
仅供参考,我们正在努力使这个功能(调试malloc)通常可供应用程序开发人员使用,但它还没有准备好。