#android #gradle #android-gradle-plugin #build.gradle
#Android #gradle #android-gradle-плагин #build.gradle
Вопрос:
Я могу сгенерировать подписанный APK с автоматически сгенерированным вариантом сборки отладки и выпуска, но не с добавленным промежуточным вариантом.
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
buildConfigField "String", "REST_BASE_URL", RELEASE_REST_BASE_URL
buildConfigField "String", "PREF_FILE_KEY", RELEASE_PREF_FILE_KEY
buildConfigField "Boolean", "RETROFIT_CLIENT", RELEASE_RETROFIT_CLIENT
}
debug {
applicationIdSuffix ".debug"
debuggable true
buildConfigField "String", "REST_BASE_URL", DEV_REST_BASE_URL
buildConfigField "String", "PREF_FILE_KEY", DEV_PREF_FILE_KEY
buildConfigField "Boolean", "RETROFIT_CLIENT", DEV_RETROFIT_CLIENT
}
staging {
applicationIdSuffix ".debugStaging"
debuggable true
buildConfigField "String", "REST_BASE_URL", STAGING_REST_BASE_URL
buildConfigField "String", "PREF_FILE_KEY", STAGING_PREF_FILE_KEY
buildConfigField "Boolean", "RETROFIT_CLIENT", STAGING_RETROFIT_CLIENT
}
}
Я в основном взял вариант отладки и продублировал его для промежуточной обработки, за исключением изменения некоторых полей конфигурации.
Я получаю эту ошибку ТОЛЬКО при выполнении промежуточной сборки apk. Отладочная сборка apk не является проблемой:
Произошел сбой при выполнении com.android.build.gradle.internal.tasks.Столкнулись рабочие $ ActionFacade Имя записи ‘META-INF/androidx.hilt_hilt-common.version’
Я распечатал дерево зависимостей. Единственными записями для hilt-common являются следующие:
--- androidx.hilt:hilt-common:{strictly 1.0.0-alpha02} -> 1.0.0-alpha02 (c)
| --- androidx.hilt:hilt-common:1.0.0-alpha02
| | --- com.google.dagger:hilt-android:2.28-alpha (*)
| --- androidx.hilt:hilt-common:1.0.0-alpha02
Я действительно не вижу ничего, что выглядит так, будто оно показывает конфликт, но опять же, я действительно не знаю, как читать распечатку зависимостей. Может быть, я что-то упускаю
И, кстати, это было не всегда так. Это произошло из ниоткуда; просто внезапно ни с того ни с сего.
Ответ №1:
Если объявление initWith debug
не будет дублировать ничего:
buildTypes {
staging {
initWith debug
applicationIdSuffix ".staging"
buildConfigField "String", "REST_BASE_URL", RELEASE_REST_BASE_URL
buildConfigField "String", "PREF_FILE_KEY", RELEASE_PREF_FILE_KEY
buildConfigField "Boolean", "RETROFIT_CLIENT", RELEASE_RETROFIT_CLIENT
}
}
И этот вопрос не имеет dependencies
блока.
Комментарии:
1. когда я сказал дублировать, я имел в виду, что скопировал конфигурацию и изменил то, что мне было нужно. как я уже сказал, мне удалось создать промежуточный apk раньше, но внезапно он перестал работать. в любом случае я также пробовал с помощью «initWith», и это ничего не помогло. о каком блоке «зависимостей» вы говорите?