Я в настоящее время мигрирую свой проект с Groovy в Kotlin DSL, и, поскольку он многомодуль, я решил использовать плагины для соглашения. < /p>
Проблем применяется правильно. У меня есть два основных модуля, один для приложения для мобильного и планшета и один для износа. В модуле приложения я использую следующий плагин: < /p>
u/Suppress("UnstableApiUsage")
class ApplicationsConventionPlugin : Plugin {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("com.android.application")
apply("org.jetbrains.kotlin.android")
}
extensions.configure {
configureKotlinAndroid(commonExtension = this)
defaultConfig {
versionCode = APP_VERSION_CODE
versionName = VERSION_NAME
targetSdk = APP_TARGET_SDK_VERSION
buildFeatures {
buildConfig = true
viewBinding = true
}
}
buildTypes {
AndroidBuildType.values().forEach {
maybeCreate(it.name).apply {
it.initWith?.let {
initWith(getByName(name))
}
applicationIdSuffix = it.applicationSuffixId
isDefault = it.isDefault
isDebuggable = it.isDebuggable
isMinifyEnabled = it.isMinifyEnabled
isShrinkResources = it.isShrinkResources
}
}
}
testOptions {
unitTests {
isIncludeAndroidResources = true
isReturnDefaultValues = true
}
animationsDisabled = true
}
}
}
}
}
< /code>
и для модуля износа я использую следующий плагин: < /p>
@Suppress("UnstableApiUsage")
class WearableApplicationsConventionPlugin : Plugin {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("com.android.application")
apply("org.jetbrains.kotlin.android")
}
extensions.configure {
configureWearableKotlinAndroid(commonExtension = this)
defaultConfig {
versionCode = WEARABLE_VERSION_CODE
versionName = VERSION_NAME
targetSdk = WEARABLE_TARGET_SDK_VERSION
buildFeatures {
buildConfig = true
viewBinding = true
}
}
buildTypes {
AndroidBuildType.values().forEach {
maybeCreate(it.name).apply {
it.initWith?.let {
initWith(getByName(name))
}
applicationIdSuffix = it.applicationSuffixId
isDefault = it.isDefault
isDebuggable = it.isDebuggable
isMinifyEnabled = it.isMinifyEnabled
isShrinkResources = it.isShrinkResources
}
}
}
testOptions {
unitTests {
isIncludeAndroidResources = true
isReturnDefaultValues = true
}
animationsDisabled = true
}
}
}
}
}
< /code>
Оба плагина имеют очень похожий метод, который представляет собой ConfigureKotlinAndroid и ConfigureWearbableKotlinAndroid, в котором, как я видел в репозитории NowInAndroid, в блоке DefaultConfig, примените MINSDK, где в моем случае,,,, как, в случае, Я применяю с одной стороны мин в 26 для приложения и минсдк 30 для ОС износа, поскольку более низкая версия я не могу вставить в ОС износ. переопределить ">internal fun Project.configureKotlinAndroid(
commonExtension: CommonExtension,
) {
commonExtension.apply {
compileSdk = COMPILE_SDK_VERSION
defaultConfig {
minSdk = 26
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
lint {
abortOnError = true
}
}
configureKotlin()
}
internal fun Project.configureWearableKotlinAndroid(
commonExtension: CommonExtension,
) {
commonExtension.apply {
compileSdk = COMPILE_SDK_VERSION
defaultConfig {
minSdk = 30
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
lint {
abortOnError = true
}
}
configureKotlin()
}
< /code>
Проблема в том, что когда я пытаюсь скомпилировать проект, я обнаруживаю, что MINSDK не применяется должным образом, потому что модули износа ОС сбоятся из -за того, что библиотеки требуют minsdk 30, и я использую 26, поэтому вместо того, чтобы взять модуль износа, он принимает приложение. Модуль приложения, почему он также составляет носимый? Кроме того, если я помещаю MINSDK непосредственно в файл приложения build.gradle.kts и в файл носимой build.gradle.>
Подробнее здесь: https://stackoverflow.com/questions/794 ... ion-plugin
Проблема применение версии MINSDK в плагине Kotlin DSL Convention ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Разница между Kotalin DSL, Groovy DSL и Kotlin SDL+Gradle? в Android-студии
Anonymous » » в форуме JAVA - 0 Ответы
- 80 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проблема с базой данных Realm после преобразования Groovy DSL Gradle в Kotlin DSL и TOML
Anonymous » » в форуме Android - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-