运行assembleDebug时,会调用我所依赖的项目的发布相关任务。
例如,我有一个名为“x”的项目,它依赖于“y”。
当我gradle assembleDebug
调用 y:mergeReleaseProguardFiles、packageReleaseAidl 等时……等等……
运行assembleDebug时,会调用我所依赖的项目的发布相关任务。
例如,我有一个名为“x”的项目,它依赖于“y”。
当我gradle assembleDebug
调用 y:mergeReleaseProguardFiles、packageReleaseAidl 等时……等等……
编辑:不再适用,使用 Android Gradle Plugin 3.x。
这些库还发布debug
和release
工件。如果项目有风格或自定义类型,也会创建这些。并且跨模块,它会尝试自动匹配变体。如果不匹配,则需要提供matchingFallback
跨模块匹配变体。更多信息可以在这里找到:https ://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#resolve_matching_errors
Android 库模块仅发布“发布”构建类型。他们没有“调试”构建类型。即使您的应用程序模块构建了调试版本,它也会使用库的发布版本。
您可以使用模块build.gradle
文件中的以下内容启用库依赖项的“调试”构建类型:
android {
publishNonDefault true
...
}
然后,当您在另一个模块中使用该依赖项时,您应该像这样使用:
dependencies {
releaseCompile project(path: ':moduleY', configuration: 'release')
debugCompile project(path: ':moduleY', configuration: 'debug')
}
我在我的应用程序中使用了相同的技巧。我有一个共享模块,我使用该模块的调试版本。在此处查找详细信息:
https://github.com/pomopomo/WearPomodoro/blob/develop/mobile/build.gradle#L90