SDK 23に更新し、gradle.buildをAPI 23に、サポートライブラリを23.0.0に更新しました。アプリを実行しようとすると、次のエラーが発生します(問題なくコンパイルされます)。
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)
すべてをAPI 22に戻してもエラーが発生します。
私はあなたと同じようにいくつかのことをしましたが、gradleが依存関係を解決できることがわかりました。外部ライブラリでは、support-v4-23.0.0、support-v7-23.0.0、およびバージョンが23.0.0の他のlibを見つけることができません。次に、「com.Android.support:support-v4:22.2.0」をコンパイルするように戻しました。問題ソルバー@mraviator
回答をありがとう@zmarties、詳細とリンクを追加したい
上記の回答ありがとうございます。
私の側で解決された8.4.0ではなくgoogle play servicesバージョン8.1.0を使用して解決しました
次の2つの変更セットを行った場合、SDK 23を使用してActionBarSherlockを構築できることがわかりました。
FloatMath
呼び出しを対応するMath
呼び出しに置き換えますmFragments
フィールドの使用をgetActiveFragments(null)
を介して初期化されたローカル変数fragments
に置き換え、使用するようにmFragment
参照を変更しますローカル変数メインレイアウトのテーマビューをデザインタブから変更しましたか?デザインタブでSherlockテーマビューにもう一度変更してみてください。
プロジェクトEclipseをAndroid Studioにインポートすると、同じ問題が発生しました
これは私にとって最良の解決策です
次の2つの変更セットを行った場合、SDK 23を使用してActionBarSherlockを構築できることがわかりました。
animatorProxy.Javaで、FloatMath呼び出しを対応するMath呼び出しに置き換えます-私はFloatMathをMathに変更します
ワストンクラスでエラーが発生しました-mFragments.isaddedしたがって、チェックする代わりに次のコードを置き換えます
mFragments.isadded!= null
に
mFragments.getActiveFragments(mCreatedMenus)
いつでも必要なときに
私はこれらの問題を解決しました。