我目前正致力于通过提供的迁移指南将项目迁移到新的gradle插件(3.0.0):
https://developer.android.com/studio/preview/features/new-android-plugin-migration.html
在我们的Android项目中,我们有一个库模块和2个app模块。现在的库模块没有任何风味,只有调试和放大器。发布构建类型,而应用程序有多种风格和构建类型。
我发现的是,库模块的buildTypes必须与应用程序模块的完全匹配。例如,
如果app模块有一个名为debugProguard的buildType,那么库模块也必须有一个名为debugProguard的buildType。这意味着在库模块中我最终必须声明buildTypes没有正文:
buildTypes {
...
debugProguard {
}
...
}
(从这里: Android Studio 3.0 Error. Migrate dependency configurations for local modules)
无论如何要避免这种情况吗?看起来奇怪的是,图书馆需要一些消费应用程序架构的知识。
理想情况下,我要做的是告诉构建系统使用库的某个buildType作为应用程序的buildType。例如,对于app中的buildType x,y,z,使用' debug'在图书馆中,对于i,j,k使用' release'。
提前致谢
答案 0 :(得分:2)
他们刚刚在Android Studio 3.0的Canary 7版本中解决了这个问题:
您现在可以指定消费者应该使用的替代构建类型 来自生产者使用android.buildTypeMatching属性作为 如下所示。该插件仅在a时使用替代构建类型 找不到匹配的构建类型。
android { … // Let’s say your app configures a ‘staging’ build type and a library module // it depends on does not. You can use the property below to tell the Android plugin // to use a library’s ‘debug’ build type instead. buildTypeMatching ‘staging’, ‘debug’ }