我正在尝试使用 getActionBar(); 方法,我收到此错误:必需android.support.v7.app.ActionBar找到android.app.ActionBar。我怎么能纠正这个?
答案 0 :(得分:8)
发生此错误是因为您正在创建对象并将其传递给其他类引用变量。由于getActionManager
提供android.app.ActionBar
的对象,但您尝试将android.app.ActionBar
类对象分配给android.support.v7.app.ActionBar
。
但这两个类都提供相同的功能。当我们的uses-sdk min版本少于api 11时使用android.support.v7.app.ActionBar
类。为了使ActionBar的对象低于api 11,我们需要android.support.v7.app.ActionBar
类对象。
要获得操作栏,您需要遵循以下两种方法之一。
import android.support.v7.app.ActionBar
并使用getSupportActionBar()
方法od活动。
转到AndroidManifest.xml文件并更改<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="19" />
并导入android.app.ActionBar
并使用getActionBar()
答案 1 :(得分:1)
如果支持的API级别低于11,则必须在项目中添加支持v4库才能使用操作栏。
import android.support.v7.app.ActionBar
如果仅支持API级别11及更高级别:
import android.app.ActionBar
有关更多信息,请转到Official Docs
答案 2 :(得分:0)
确保您的清单文件中的最低api级别高于11.因为仅在11以下的api级别支持包android.support.v7.app.ActionBar
。
因此,如果您想使用import android.app.ActionBar
中的ActionBar,那么您必须在清单文件中使用minimun api level 11。否则,您必须在项目中添加支持v4库,以便从android.support.v7.app.ActionBar
包中使用操作栏。
答案 3 :(得分:0)
确保您的应用有应用栏或标题栏,检查清单文件或style.xml上的应用主题 如果你的风格如下:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- your style -->
</style>
使用ActionBar actionbar = getSupportActionBar();
但如果你的风格如此:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- your style-->
</style>
使用ActionBar actionbar = getSupportActionBar();
确保使用import android.support.v7.app.ActionBar
答案 4 :(得分:-1)
如果运行api 11及更高版本
import android.app.ActionBar;
如果它声明它已经存在,请务必将其删除