Ich habe das SDK 23 und das gradle.build auf API 23 aktualisiert, die Bibliotheksunterstützung auf 23.0.0 usw. und erhalte jetzt die folgende Fehlermeldung, wenn ich versuche, die App auszuführen (kompiliert das Ganze).
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 habe alles auf API 22 zurückgesetzt und bekomme immer noch den Fehler.
Ich habe etwas getan wie Sie, aber ich fand gradle Abhängigkeiten lösen kann, in externen Bibliotheken kann ich nicht support-v4-23.0.0, support-v7-23.0.0 und andere Bibliotheken finden, die die Version sind ist 23.0.0 . dann kehrte ich zurück zum kompilieren 'com.Android.support:support-v4:22.2.0' , der Problemlöser @mraviator
Vielen Dank @zmarties für die Antwort, ich möchte die Details und Links hinzufügen
Danke für die obigen Antworten.
Die Verwendung von Google Play Services Version 8.1.0 anstelle von 8.4.0 wurde von meiner Seite behoben
Ich habe festgestellt, dass ich ActionBarSherlock mit SDK 23 erstellen könnte, wenn ich die folgenden zwei Änderungen vorgenommen habe:
FloatMath
-Aufrufe durch ihre entsprechenden Math
-AufrufemFragments
durch eine lokale Variable fragments
, die über getActiveFragments(null)
initialisiert wurde, und ändern Sie dann die Verweise mFragment
in die lokale Variable Haben Sie die Designansicht im Hauptlayout auf der Registerkarte Design geändert? Versuchen Sie, es auf der Design-Registerkarte erneut in eine Sherlock-Designansicht zu ändern.
ich hatte das gleiche Problem, als ich das Projekt Eclipse in Android Studio importierte
Das ist die beste Lösung für mich
Ich habe festgestellt, dass ich ActionBarSherlock mit SDK 23 erstellen könnte, wenn ich die folgenden zwei Änderungen vorgenommen habe:
ersetzen Sie in AnimatorProxy.Java FloatMath-Aufrufe durch ihre entsprechenden Math-Aufrufe - ich ändere FloatMath - in Math
in Waston Class hatte ich den Fehler - mFragments.isadded Also, Ich ersetze den folgenden Code, anstatt zu prüfen
mFragments.isadded! = null
zu
mFragments.getActiveFragments (mCreatedMenus)
immer wenn es nötig ist
ich hatte diese Probleme gelöst.