Студия Android: почему minSdkVersion и targetSdkVersion указаны как в AndroidManifest.xml, так и в build.gradle?
Я только что обнаружил что-то странное в студии Android: у него есть некоторые параметры конфигурации в файле build.gradle
, которые переопределяют то, что указано в файле AndroidManifest.xml
.
Например, у меня были следующие строки в build.gradle
:
android {
compileSdkVersion 18
buildToolsVersion "18.1.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 10
}
...
}
который переопределял соответствующий тег в AndroidManifest.xml
:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8"/>
Мне не очень нравятся одинаковые настройки в двух разных файлах, поэтому мне интересно, могу ли я безопасно удалить его либо из build.gradle
, либо AndroidManifest.xml
, и там, где имеет смысл хранить его.
Ответы
Ответ 1
Gradle переопределяет значения манифеста, и я предпочитаю обновлять файл build.gradle
, а не манифест. Вероятно, это правильный способ, используя Gradle. Gradle поддерживает вкусы продуктов, которые можно контролировать с помощью IDE, и эти вкусы продукта могут изменить многие вещи в нашем манифесте, например, имя пакета, код версии, имя версии, целевой SDK и многие другие. Затем одним щелчком мыши в Android Studio вы можете изменить многие свойства и сгенерировать еще один apk.
Вы можете оставить манифест таким, какой он есть, и выполнить всю конфигурацию в build.gradle
. Вы можете безопасно удалить
<uses-sdk></uses-sdk>
из манифеста, а также коды версий.