我正在玩Android Studio中的代码分析。
我有以下课程:
private class MyListAdapter extends ArrayAdapter<MyObject> {
public void addAll (Collection<? extends MyObject> collection){
super.addAll(collection);
}
public void addAll (MyObject... items){
super.addAll(items);
}
}
这两种方法都被标记为以下问题:
“调用需要API级别11(当前最小值为9)”
这不是新代码。它自项目开始以来一直存在。它运行在Android API 9上(无论是什么)
为什么这是一个问题?更重要的是,为什么它不会在运行API 9的设备上造成某种运行时错误。
答案 0 :(得分:1)
Flag会告诉您它在API 11 here
下无法使用的功能您仍然可以在API 11或更高版本的设备上运行它。
如果你真的需要在低于11的API上运行它,我建议你检查这样的API版本
int currentApiVersion = android.os.Build.VERSION.SDK_INT;
if (currentApiVersion >= android.os.Build.VERSION_CODES.HONEYCOMB){
// do some method for HoneyComb(API 11) or higher
} else{
// do some method for something lower than HoneyComb(API 11)
}
或者更改minSdkVersion以声明该应用程序适用于项目build.gradle
文件中的API 11及更高版本
defaultConfig {
....
minSdkVersion 11 // Minimum version that you want
targetSdkVersion 22
....
}
答案 1 :(得分:0)
打开您的项目build.gradle
并更改
defaultConfig {
.....
minSdkVersion 9 // change 9 to 11
targetSdkVersion 22
versionCode 1
versionName "1.0"
}