我刚刚开始做Android开发,或多或少遵循http://developer.android.com/training/basics/firstapp/starting-activity.html教程,有一件事一直困扰着我:我有两个类,都是使用“Android活动”创建向导创建的:
public class PlacesActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_places);
// I manually commented out the following line to get it to compile.
// getActionBar().setDisplayHomeAsUpEnabled(true);
}
// ... other methods
}
和
public class ShowOnePlace extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_one_place);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
// ... other methods
}
Eclipse不断给我以下错误:
调用需要API级别11(当前最小值为8):android。应用程序。活动#getActionBar
调用需要API级别11(当前最小值为8):android。应用程序。ActionBar#设置DisplayHomeAsupaned
直到我注释掉其中一行(如上所示)。现在,应用程序似乎在我的Android设备上编译和运行,没有出现错误。(好吧,至少没有这个错误)。
所以:
getActionBar()。设置DisplayHomeAsupEnabled(真)
在一个类中给出错误,但在另一个类中,完全相同的行不是错误,甚至不是警告
“Android活动”创建向导中是否存在错误,以及getActionBar()。设置DisplayHomeAsupEnabled(真)
语句在一个活动中是错误的,但在另一个活动中是完美的
EclipseLint中是否存在bug,并且该语句在两个活动中都是正确的(或者在两个活动中都是错误的)
我必须做些什么才能在不将minSdkVersion=“8”更改为minSdkVersion=“11”的情况下修复此问题?我当时的印象是,“android-support-v4.jar”文件是一个兼容库,运行在8版设备上,用来处理11版设备本机处理的内容
当我看到这个错误时,真正正确的做法是什么
如果您使用appcompat-v7和更高版本,您不能使用actionbarsherlock,因为两者都定义了相同的属性。所以这个库在资源上有冲突。
要使用支持库实现这一点,您需要:(我希望您已经下载并将支持库集成到您的项目中)
进口:
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
活动:
public class PlacesActivity extends ActionBarActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_places);
// I manually commented out the following line to get it to compile.
// getActionBar().setDisplayHomeAsUpEnabled(true);
}
// ... other methods
}
因此,您可以从旧版本支持的活动中获得actionBar实现:
ActionBar actionBar = activity.getSupportActionBar();
写代码
简而言之,旧版本的Android系统中没有操作栏,谷歌的支持库也不提供该功能。这就是lint抱怨的原因——你正在使用API verison 8中不存在的代码,它被设置为你的应用程序支持的最低API级别。如果你想在旧的android版本上使用action bar,可以使用名为“action bar Sherlock”的开源库。
现在,回答你们的问题
使用getSupportActionBar()
而不是getActionBar()
。这将在API级别低于11的情况下提供ActionBar功能。
在SDK更新(23)之后,我得到了这个lint错误,我没有对我的代码做任何更改,它在api级别为9的设备上运行良好。另外,我在代码中根本不调用android.app.活动#onCreateView。如果我单击自动修复,它会将@SuppressLint(NewApi)放入类,这样错误就会消失,我想确定这是否是要走的路。
我正在尝试添加运行时权限android(6.0.1)API 23,如果我使用SDK版本(最小和目标版本均为23)它很好,如下所示, 如果我改变android:minSdkVersion(小于23) 例如: 我在下面收到错误: 调用需要API级别23(当前最小值为14):android.app.Activity#requestPermissions,checkSelfPermission 对于以下两
问题内容: 我是JSON的新手。我按照本教程创建了示例应用程序。当我尝试将代码复制到我的日食时,它显示错误。 请指教。谢谢 问题答案: 转到android AndroidManifest.xml 在您的文件中是8 将SDK版本更改为9,如下所示
问题内容: 我是android的新手,并且正在开发android应用程序。但是我的包装行在MainActivity.java类中给出了此错误。谁能告诉我这的原因吗?这是我的课程,打包行给出了此错误。 问题答案: 首先,介绍一些细节。有不同 级别 的Android API,每个级别可能会引入新功能,如此处所示。 创建Android应用程序时,您指定运行应用程序的最低级别。这是在做与节:看到这里了解详
我的代码中有这样一行: 显示以下错误: 调用需要API级别16(当前最小值为14) 如果API级别较高,它是否限制了我的应用程序可以使用的设备数量?
我有困难运行我的Android应用程序在一个全屏模式下按视频的指示。当它试图运行时,应用程序会随着错误而崩溃。 可能有用的部分主体活动