运行Android 4.2的三星设备上的Android appcompat v7库存在问题.在我的开发者控制台中,我不断遇到以下堆栈跟踪崩溃:
java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
at android.support.v7.widget.PopupMenu.<init>(PopupMenu.java:66)
at com.[my-package-name].CustomActivity$5.onClick(CustomActivity.java:215)
at android.view.View.performClick(View.java:4222)
at android.view.View$PerformClick.run(View.java:17620)
at android.os.Handler.handleCallback(Handler.java:800)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5391)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
这是CustomActivity.java的第215行:
PopupMenu popup = new PopupMenu(CustomActivity.this, mImageViewMenu);
Run Code Online (Sandbox Code Playgroud)
崩溃来自一系列设备,但总是三星,而且始终是Android 4.2.
快速的网络搜索让我相信很多人都有同样的问题,我试图解决这个问题的一些步骤是:
尽管有这些步骤,尽管它在所有其他设备和Android版本上工作,但崩溃报告仍然存在.
在我最近在Google Play上更新我的应用程序之后,我开始收到很多崩溃报告,所有这些都是来自Android 5的三星设备.较低的Android版本工作正常,其他Android 5厂商的设备也可以正常工作.
我没有任何可以重现问题的设备,所以我不能一分为二.我试图从崩溃报告和自我上一个工作版本(不幸的是很长)以来的更改列表中推断出可能出现的问题.
所有崩溃报告都是这样的(只是设备之间的地址略有不同):
Build fingerprint: 'samsung/kltektt/kltektt:5.0/LRX21T/G900KKTU1BOB1:user/release-keys'
Revision: '15'
ABI: 'arm'
pid: 26265, tid: 26265, name: mt.AnnelidsDemo >>> cz.gdmt.AnnelidsDemo <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x76f57e84
r0 00000800 r1 0000004b r2 b4aa9f9a r3 00000000
r4 1426e019 r5 76f57e80 r6 0000012c r7 76e6b040
r8 00000019 r9 76f57d54 sl 000007ff fp b4e1b330
ip b4aa9f70 sp bea94b50 lr b4bc72c1 pc b4c0d9b8 cpsr 00070030
backtrace:
#00 pc 001099b8 /system/lib/libart.so (art::TypeLookupTable::Lookup(char const*) const+59)
#01 pc 000c32bd /system/lib/libart.so (art::ClassLinker::LookupClassFromImage(char const*, art::gc::space::ImageSpace*)+64) …Run Code Online (Sandbox Code Playgroud) crash android samsung-mobile android-runtime android-5.0-lollipop