#android-studio #kotlin #gradle #kotlin-multiplatform
#android-studio #котлин #gradle #kotlin-мультиплатформенный
Вопрос:
Я новичок в kotlin multiplatform mobile и пробую его. Я получаю эту проблему при создании подписанного apk внутри Android studio 4.0.1 с помощью Build > Generate Signed Bundled / Apk …. Существует ошибка сборки, которая выдает это сообщение
Entry name 'META-INF/androidx.vectordrawable_vectordrawable.version' collided
Я попробовал эти шаги:
- Файл > Аннулировать кэш / перезапустить
- Сборка> Чистый проект
- Сборка > Перестроить проект
Также пытался удалить apk из папки приложения и повторить процесс. Все еще есть эта проблема.
Это результат сборки:
Executing tasks: [:androidApp:assembleDebug, :androidApp:assembleRelease] in project C:UserslocalpcAndroidStudioProjectsMyApplication
> Configure project :shared
Kotlin Multiplatform Projects are an Alpha feature.
Some Kotlin/Native targets cannot be built on this mingw_x64 machine and are disabled:
* In project ':shared':
* targets 'iosArm64', 'iosX64' (can be built with a macos_x64 host)
To hide this message, add 'kotlin.native.ignoreDisabledTargets=true' to the Gradle properties.
> Task :androidApp:preBuild UP-TO-DATE
> Task :androidApp:preDebugBuild UP-TO-DATE
> Task :shared:preBuild UP-TO-DATE
> Task :shared:preDebugBuild UP-TO-DATE
> Task :shared:compileDebugAidl NO-SOURCE
> Task :androidApp:compileDebugAidl NO-SOURCE
> Task :shared:packageDebugRenderscript NO-SOURCE
> Task :androidApp:compileDebugRenderscript NO-SOURCE
> Task :androidApp:generateDebugBuildConfig UP-TO-DATE
> Task :androidApp:generateDebugResValues UP-TO-DATE
> Task :androidApp:generateDebugResources UP-TO-DATE
> Task :shared:compileDebugRenderscript NO-SOURCE
> Task :shared:generateDebugResValues UP-TO-DATE
> Task :shared:generateDebugResources UP-TO-DATE
> Task :shared:packageDebugResources UP-TO-DATE
> Task :androidApp:mergeDebugResources UP-TO-DATE
> Task :androidApp:createDebugCompatibleScreenManifests UP-TO-DATE
> Task :androidApp:extractDeepLinksDebug UP-TO-DATE
> Task :shared:extractDeepLinksDebug UP-TO-DATE
> Task :shared:processDebugManifest UP-TO-DATE
> Task :androidApp:processDebugManifest UP-TO-DATE
> Task :shared:compileDebugLibraryResources UP-TO-DATE
> Task :shared:parseDebugLocalResources UP-TO-DATE
> Task :shared:generateDebugRFile UP-TO-DATE
> Task :androidApp:processDebugResources UP-TO-DATE
> Task :shared:generateDebugBuildConfig UP-TO-DATE
> Task :shared:compileDebugKotlinAndroid UP-TO-DATE
> Task :shared:javaPreCompileDebug UP-TO-DATE
> Task :shared:compileDebugJavaWithJavac UP-TO-DATE
> Task :shared:bundleLibCompileToJarDebug UP-TO-DATE
> Task :androidApp:compileDebugKotlin UP-TO-DATE
> Task :androidApp:javaPreCompileDebug UP-TO-DATE
> Task :androidApp:compileDebugJavaWithJavac UP-TO-DATE
> Task :androidApp:compileDebugSources UP-TO-DATE
> Task :androidApp:mergeDebugShaders UP-TO-DATE
> Task :androidApp:compileDebugShaders NO-SOURCE
> Task :androidApp:generateDebugAssets UP-TO-DATE
> Task :shared:mergeDebugShaders UP-TO-DATE
> Task :shared:compileDebugShaders NO-SOURCE
> Task :shared:generateDebugAssets UP-TO-DATE
> Task :shared:packageDebugAssets UP-TO-DATE
> Task :androidApp:mergeDebugAssets UP-TO-DATE
> Task :androidApp:processDebugJavaRes NO-SOURCE
> Task :shared:processDebugJavaRes NO-SOURCE
> Task :shared:bundleLibResDebug UP-TO-DATE
> Task :androidApp:mergeDebugJavaResource UP-TO-DATE
> Task :androidApp:checkDebugDuplicateClasses UP-TO-DATE
> Task :androidApp:mergeExtDexDebug UP-TO-DATE
> Task :shared:bundleLibRuntimeToJarDebug UP-TO-DATE
> Task :androidApp:dexBuilderDebug UP-TO-DATE
> Task :androidApp:mergeLibDexDebug UP-TO-DATE
> Task :androidApp:mergeProjectDexDebug UP-TO-DATE
> Task :androidApp:mergeDebugJniLibFolders UP-TO-DATE
> Task :shared:mergeDebugJniLibFolders UP-TO-DATE
> Task :shared:mergeDebugNativeLibs UP-TO-DATE
> Task :shared:stripDebugDebugSymbols NO-SOURCE
> Task :shared:copyDebugJniLibsProjectOnly UP-TO-DATE
> Task :androidApp:mergeDebugNativeLibs UP-TO-DATE
> Task :androidApp:stripDebugDebugSymbols NO-SOURCE
> Task :androidApp:validateSigningDebug UP-TO-DATE
> Task :androidApp:packageDebug FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':androidApp:packageDebug'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Entry name 'META-INF/androidx.vectordrawable_vectordrawable.version' collided
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 2s
41 actionable tasks: 1 executed, 40 up-to-date
Когда я создаю без подписи, он завершается успешно, но не выполняется при выполнении подписанной сборки apk. Не уверен, что не так. Ценю вашу помощь.
Ответ №1:
Я не знаю, где именно это противоречит. Но исключение этого списка, похоже, устраняет проблему, и я могу завершить сборку подписанного apk. Обновлю больше, если смогу разобраться в этом подробнее:
Добавьте это в свой build.gradle.kts (используя kotlin dsl).
android {
compileSdkVersion(29)
defaultConfig {
applicationId = "com.example.myapplication.androidApp"
minSdkVersion(24)
targetSdkVersion(29)
versionCode = 1
versionName = "1.0"
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
}
}
////// ADD THIS PART //////////
packagingOptions {
exclude("META-INF/androidx.vectordrawable_vectordrawable.version")
exclude("META-INF/androidx.loader_loader.version")
exclude("META-INF/androidx.lifecycle_lifecycle-livedata.version")
exclude("META-INF/androidx.lifecycle_lifecycle-livedata.version")
exclude("kotlin/annotation/annotation.kotlin_builtins")
exclude("META-INF/androidx.lifecycle_lifecycle-runtime.version")
}
}