需要api 11,min是api 9但是在api 9上运行

时间:2015-08-12 12:35:17

标签: android

我正在玩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的设备上造成某种运行时错误。

2 个答案:

答案 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"
    }