我可以使用自动生成的调试和发布构建变体生成带签名的APK,但不能使用我添加的暂存变体生成签名的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
}
}
我基本上采用了debug变体,并复制了它进行登台,但更改了一些配置字段。我只有在执行暂存apk生成时才会遇到此错误。调试apk构建不是问题:
A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade Entry name 'META-INF/androidx.hilt_hilt-common.version' collided
我打印出依赖树。 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
我真的看不到任何看起来有冲突的东西,但是话又说回来,我真的不知道如何读取依赖项打印输出。也许我错过了一些东西顺便说一下,情况并非总是如此。这是从无处发生的。只是突然发疯了。
最佳答案
除非声明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
块。
关于android - 可以构建自动生成的调试构建变体apk,但不能构建自定义构建变体apk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64585592/