Ответ 1
У меня версия 0.8.6, и это можно сделать следующим образом:
В меню: Файл → Структура проекта.
В открывшемся меню перейдите к app
, затем на вкладках выберите Flavors
.
Недавно я перенес проект в Android Studio 0.4.3. При компиляции он дал мне ошибки на нескольких строках java, включая следующее:
FragmentManager fm = getFragmentManager();
fm.findFragmentById()
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getResources().getStringArray(R.array.course_descriptions);
Я вижу следующее сообщение об ошибке:
Call requires API level 11 (current min is 7)
Я запускаю Android Studio.0.4.3. Я также загрузил Android 4.4.2 (API 19) через диспетчер SDK.
Я добавил в мой манифест следующую строку:
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
Я выполнил "Проект синхронизации с Gradle файлами", очистил и перестроил проект. Я все еще вижу те же ошибки.
Как исправить эту проблему?
У меня версия 0.8.6, и это можно сделать следующим образом:
В меню: Файл → Структура проекта.
В открывшемся меню перейдите к app
, затем на вкладках выберите Flavors
.
Если вы создали свой проект в последних версиях Android Studio, этот параметр находится в файле конфигурации gradle. Найдите файл build.gradle
в вашем прикладном модуле. Там должно быть что-то вроде этого.
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
Начиная с gradle системы сборки, все ваши настройки, связанные с sdk и API компиляции, будут переопределены тем, что вы определяете в своем файле build.gradle
.
Итак, если вы хотите, вы можете удалить все эти конфигурации из AndroidManifest.xml
и сохранить их в файлах build.gradle
, чтобы избежать путаницы.
Итак, проверьте minSdkVersion
в файле module build.gradle
, который выдает ошибку.
android {
compileSdkVersion 19
buildToolsVersion '19.0.1'
defaultConfig {
minSdkVersion 7 // Change 7 to 11 will solve your problem
targetSdkVersion 19
}
}
Я предпочитаю иметь все эти конфигурации в моем файле верхнего уровня build.gradle
, потому что, если конфигурации различны в разных модулях, у вас будет ошибка с манифестом слияния.
Полное приложение /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'
}
}
Просто выполните действия (для пользователей студии Android):
Что все собеседники, gradle автоматически перестраивают проект.