How do I set the minimum api level for projects in

2019-01-17 21:49发布

问题:

I recently migrated a project into Android Studio 0.4.3. When compiling, it gave me errors on several lines of java, including the following:

FragmentManager fm = getFragmentManager();

fm.findFragmentById()

@Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

getResources().getStringArray(R.array.course_descriptions); 

I see the following error message:

Call requires API level 11 (current min is 7)

I'm running Android Studio .0.4.3. I also downloaded Android 4.4.2 (API 19) through the SDK manager.

I added the following line to my manifest:

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19" /> 

I did a "Sync Project with Gradle files", cleaned and rebuilt the project. I still see the same errors.

How do I fix this issue ?

回答1:

I have 0.8.6 version and it's can be done like this:

In the menu: File -> Project Structure.

In the open menu, navigate to app, then in the tabs choose Flavors.



回答2:

If you have generated your project on recent versions of Android Studio, the setting is in gradle config file. Find build.gradle file in your application module. There should be something like this.

defaultConfig {
    minSdkVersion 7
    targetSdkVersion 19
    versionCode 1
    versionName "1.0"
}


回答3:

Starting from gradle build system all your setting related to sdk and compilation APIs will be overridden by what you define in your build.gradle file.

So going forward if you want you can remove these all configurations from your AndroidManifest.xml and keep them in build.gradle files only to avoid confusions.

So check minSdkVersion in module's build.gradle file which is throwing the error.

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.1'

    defaultConfig {
        minSdkVersion 7      // Change 7 to 11 will solve your problem
        targetSdkVersion 19
    }

}

I prefer to have these all configurations in my top project level build.gradle file because if the configurations are different in different modules you will be ended up with Manifest Merging error.



回答4:

Full app/build.gradle minSdkVersion, targetSdkVersion

apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    applicationId "com.yourapp.package"
    minSdkVersion 18
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

packagingOptions {
    exclude 'LICENSE.txt'
}
}

dependencies {
androidTestCompile fileTree(dir: 'libs', include: '*.jar')
androidTestCompile('com.squareup.assertj:assertj-android:1.0.0'){
    exclude group: 'com.android.support', module:'support-annotations'
    }
}


回答5:

Simply follow the steps (For android studio users):

  1. right click the App directory
  2. choose the "module setting" option
  3. change the ADK Platform as what you need
  4. Click Apply

That's all buddy, The gradle will rebuild the project automatically.