Właśnie zmieniliśmy naszą aplikację, aby korzystała z appcompat-v7 supportbiblioteki, aby skorzystać z paska akcji wsparcia i obsługiwać motywy Material. Używając v21.0.0 of appcompat-v7(i v21.0.0 of support-v4), teraz widzimy awarie w Google Playi Crashlytics tylko z urządzeń Samsung runningAndroid v4.2.2 . Here is the stack trace from Google Play and the app appears to crash as soon as theactionbar) jest wyświetlany i / lub unieważniany.
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)
Inne urządzenia i emulatory działające w wersji 4.2.2 nie wykazują tego zachowania. Rozumiem, że wiele aplikacji Google używa już tej nowej wersji programu appcompatdo wyświetlania paska akcji. Jeśli te aplikacje nie zgłaszają awarii na tych urządzeniach, warto wiedzieć, w jaki sposób można tego uniknąć / naprawić.
Zgłosiłem to jako błąd do Google, ale został zamknięty z tego powodu, że jest to problem programistyczny. Chociaż zgadzam się, że może tak być, zastanawiam się, czy / jak ktokolwiek może obecnie używać appcompat-v7 v21.0.0i nie ma awarii Samsung 4.2.2 devices.
Aktualizacja: wygląda na to, że Google przynajmniej rozważa możliwe obejścia tego problemu. Zobacz to, aby uzyskać szczegółowe informacje.