我们刚刚更改了我们的应用程序,使用 appcompat-v7 support
库,以便利用支持操作栏和支持材料主题。使用 v21.0.0 of appcompat-v7
(和 v21.0.0 of support-v4)
,我们现在看到的崩溃在 Google Play
和 Crashlytics 只从三星设备 running
Android v4.2.2显示和/或无效。
java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
at android.support.v7.app.ActionBarActivityDelegateBase.initializePanelMenu(ActionBarActivityDelegateBase.java:991)
at android.support.v7.app.ActionBarActivityDelegateBase.preparePanel(ActionBarActivityDelegateBase.java:1041)
at android.support.v7.app.ActionBarActivityDelegateBase.doInvalidatePanelMenu(ActionBarActivityDelegateBase.java:1259)
at android.support.v7.app.ActionBarActivityDelegateBase.access$100(ActionBarActivityDelegateBase.java:80)
at android.support.v7.app.ActionBarActivityDelegateBase$1.run(ActionBarActivityDelegateBase.java:116)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5299)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
其他运行 v4.2.2的设备和模拟器不会出现这种行为。据我所知,许多谷歌应用程序已经在使用这个新版本的 appcompat
来显示动作条。如果这些应用程序没有报告这些设备上的崩溃,那么了解如何避免或修复这种情况将是很有帮助的。
我向 Google 报告了这个 bug,但是因为它是一个开发问题,所以它被关闭了。虽然我同意这可能是这种情况,我想知道是否/如何有人目前能够使用 appcompat-v7 v21.0.0
,而不会得到在 Samsung 4.2.2 devices
崩溃。
更新: 看起来谷歌至少在考虑可能的解决方案。详情请参阅 这个。