【发布时间】:2019-02-13 22:23:02
【问题描述】:
我正在将应用程序从 API 9 更新到 API 28,它实现了 ActionBarSherlock。我一直在关注许多教程(特别是 this one)从 ActionBarSherlock 升级到 ActionBarActivity 并稍微调整它们以将 ActionBarActivity 更新为 AppCompatActivity。
我遇到的问题是,在完全升级后,我的 ActionBarSherlock 属性之一出现运行时崩溃,我似乎无法删除或覆盖它,因为 appcompat v7 正在使用它。
java.lang.NoSuchFieldError: No static field ActionBar_displayOptions of type I in class Landroid/support/v7/appcompat/R$styleable; or its superclasses (declaration of 'android.support.v7.appcompat.R$styleable' appears in /data/app/com.android.app-OJqieQQnVdzAHNjYAKgnhA==/split_lib_slice_0_apk.apk)
at android.support.v7.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:133)
at android.support.v7.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:96)
at android.support.v7.widget.Toolbar.getWrapper(Toolbar.java:2112)
at android.support.v7.widget.ActionBarOverlayLayout.getDecorToolbar(ActionBarOverlayLayout.java:547)
at android.support.v7.widget.ActionBarOverlayLayout.pullChildren(ActionBarOverlayLayout.java:539)
at android.support.v7.widget.ActionBarOverlayLayout.setWindowCallback(ActionBarOverlayLayout.java:615)
at android.support.v7.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:611)
at android.support.v7.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:518)
at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:466)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.android.app.ui.activity.LoginActivity.onCreate(LoginActivity.java:40)
然后检查 abs__attrs.xml 文件,我可以看到 attr:
<attr name="displayOptions">
<flag name="useLogo" value="0x1" />
<flag name="showHome" value="0x2" />
<flag name="homeAsUp" value="0x4" />
<flag name="showTitle" value="0x8" />
<flag name="showCustom" value="0x10" />
<flag name="disableHome" value="0x20" />
</attr>
如果我删除或更改它的名称,编译器会抱怨并且不允许我运行构建项目 - 但它应该从 v7 支持库中获取该字段,对吗?
无论如何,我已经尝试将活动的主题更改为
"android:theme=@style/Theme.AppCompat.Light.NoActionBar"
并且我在没有 ActionBar 的情况下加载它,所以我在这里猜测问题确实与 ActionBar 有关。有任何想法吗?
干杯!
【问题讨论】:
标签: android android-actionbar actionbarsherlock appcompatactivity