Проблема применение версии MINSDK в плагине Kotlin DSL ConventionAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Проблема применение версии MINSDK в плагине Kotlin DSL Convention

Сообщение Anonymous »

Я в настоящее время мигрирую свой проект с 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»