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 ?
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
.
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"
}
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.
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'
}
}
Simply follow the steps (For android studio users):
- right click the App directory
- choose the "module setting" option
- change the ADK Platform as what you need
- Click Apply
That's all buddy, The gradle will rebuild the project automatically.