我更新到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,但仍然收到错误。
答案 0 :(得分:13)
我做了一些你做的事, 但我发现gradle可以解决依赖关系, 在外部库我找不到支持-v4-23.0.0,support-v7-23.0.0和其他版本为23.0.0的lib。 然后我又回到编译com.android.support:support-v4:22.2.0', 问题解决者@mraviator
答案 1 :(得分:12)
谢谢@zmarties的答案,我想添加细节和链接
感谢您的上述答案。
答案 2 :(得分:6)
使用google play服务版本8.1.0而不是8.4.0解决了我的问题
答案 3 :(得分:0)
您是否从设计标签更改了主要布局中的主题视图? 尝试再次将其更改为设计选项卡中的Sherlock主题视图。
答案 4 :(得分:0)
将项目eclipse导入Android Studio时,我遇到了同样的问题
这是我的最佳解决方案
如果我做了以下两组更改,我发现可以使用SDK 23构建ActionBarSherlock:
<\ n>在AnimatorProxy.java中,将FloatMath调用替换为相应的Math调用 - 我将FloatMath更改为Math在Waston Class中我遇到了错误 - mFragments.isadded 所以, 我替换以下代码而不是检查
mFragments.isadded!= null
到
<强> mFragments.getActiveFragments(mCreatedMenus)强>
每当需要时
我解决了这些问题。