我在 Android Studio 3.2 上使用 Gradle 4.1 和 Gradle-Android 插件 3.0.1
我有 2 种风格的“生产”和“暂存”,我无法将我的项目构建为具有不同构建变体的库。
应用程序构建.gradle:
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
android {
...
productFlavors {
production {
}
staging {
}
}
defaultPublishConfig "productionRelease"
publishNonDefault true
}
if( android.productFlavors.size() > 0 ) {
android.libraryVariants.all { variant ->
if( android.publishNonDefault && variant.name == android.defaultPublishConfig ) {
def bundleTask = tasks["bundle${name.capitalize()}"]
artifacts {
archives(bundleTask.archivePath) {
classifier name.replace('-' + variant.name, '')
builtBy bundleTask
name name.replace('-' + variant.name, '')
}
}
}
...
然后我运行:./gradlew clean install,我得到的错误是:
任务 ':app:install' 执行失败。
无法发布配置“存档” POM 不能有多个具有相同类型和分类器的工件。已经有 MavenArtifact app:aar:aar:null,正在尝试添加 MavenArtifact app:aar:aar:null。
为了编译这段代码,我需要用true交换android.publishNonDefault,否则我会得到一个错误:Cannot get the value of write-only property 'publishNonDefault'
任何建议或提示都会非常有帮助,目的是在 jitpack 上构建库模块,我们可以将它导入到带有构建变体的项目中。谢谢!