Android: java.land.NoSuchFieldError nach update auf SDK 23
Ich aktualisiert auf SDK 23 und aktualisiert die gradle.build-API-23, - support-Bibliothek zu 23.0.0, etc und bin jetzt immer die folgende Fehlermeldung, wenn Sie versuchen, um die app auszuführen (kompiliert gerade fein).
java.lang.NoSuchFieldError: No instance field mFragments of type Landroid/support/v4/app/FragmentManagerImpl; in class Landroid/support/v4/app/Watson; or its superclasses (declaration of 'android.support.v4.app.Watson' appears in /data/app/com.my.app-1/base.apk)
at android.support.v4.app.Watson.onCreatePanelMenu(Watson.java:50)
at com.actionbarsherlock.ActionBarSherlock.callbackCreateOptionsMenu(ActionBarSherlock.java:560)
at com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchCreateOptionsMenu(ActionBarSherlockNative.java:64)
at com.actionbarsherlock.app.SherlockFragmentActivity.onCreatePanelMenu(SherlockFragmentActivity.java:164)
at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:548)
at com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:917)
at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:258)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Ich wieder zu API-22 auf alles und bekomme immer noch den Fehler.
- Warum sind Sie immer noch mit ABS, sollten Sie migriert haben, um die tatsächliche Unterstützung der Bibliothek actionbar-oder noch besser:
Toolbar
jetzt - Ja, ich weiß. Meine neue app ist API-21 und auf, aber ich bin immer noch die Unterstützung meiner alten app und nicht wollen, verbringen Sie die Zeit zum implementieren AppCompat (der einmal versucht hat, sehr chaotisch).
- Ich glaube, etwas falsch passiert in Android 6.0 Preview und Android Studio 1.4.1.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich das Ding, wie du hast ,
aber ich fand gradle lösen können Abhängigkeiten,
in Externen Bibliotheken, die ich nicht finden können support-v4-23.0.0,support-v7-23.0.0 und andere lib version ist 23.0.0.
dann habe ich wieder auf compile 'com.android.support:support-v4:22.2.0',
der Problemlöser @mraviator
com.android.support:support-v4:+
, was verursachte, dass die neueste version verwendet zu werden. Einstellung, um die spezifische version, die ich in meinem wichtigsten Projekt-behoben das Problem für mich.buildToolsVersion
jetzt? Ich bin mitHoloEverywhere
undABS
Danke @zmarties für die Antwort , möchte ich hinzufügen, dass die Informationen und links
Danke für die obigen Antworten .
Verwendung der google play services in der version 8.1.0 statt 8.4.0 gelöst auf meiner Seite
Fand ich, dass ich bauen konnte ActionBarSherlock mit SDK 23, wenn ich die folgenden zwei Sätze von änderungen:
FloatMath
fordert mit Ihren entsprechendenMath
AnrufemFragments
Feld mit einer lokalen Variablenfragments
initialisiert übergetActiveFragments(null)
, und ändern Sie dann diemFragment
Verweise auf die lokale variableHast du das Thema ändern in der Ansicht der Haupt-layout von der Registerkarte "Entwurf"?
Versuchen Sie es erneut, um eine Sherlock-theme-Ansicht auf die Registerkarte "Entwurf".
ich hatte das gleiche problem beim import von Projekt eclipse zu Android Studio
Dies ist die beste Lösung für mich
Fand ich, dass ich bauen konnte ActionBarSherlock mit SDK 23, wenn ich die folgenden zwei Sätze von änderungen:
in AnimatorProxy.java ersetzen Sie FloatMath Anrufe mit den entsprechenden Mathematischen anrufen - ich ändere FloatMath - Mathematik
in Waston Klasse hatte ich den Fehler - mFragments.isadded
So,
Ersetze ich den Folgen code anstelle der überprüfung
mFragments.isadded != null
zu
mFragments.getActiveFragments(mCreatedMenus)
everywher, wenn es erforderlich
hatte ich diese Probleme lösen.