【问题标题】:Multiple modules with same build type具有相同构建类型的多个模块
【发布时间】:2014-12-18 00:16:01
【问题描述】:

我有一个带有两个模块的 gradle android 项目:

  • 穿
  • 应用(即手机应用)

在我的 gradle 配置中,我有不同的构建类型。默认值(调试和发布,每个都有自定义设置)以及开发和测试构建类型(也有自定义签名、自定义 proguard 和自定义 applicationIdSuffix。

我现在要做的是使用 buildType beta (gradle clean assembleBeta) 构建应用程序包。这开始在 beta 中构建应用程序,看到它对穿戴有依赖性,然后开始构建穿戴。但这是问题所在。磨损模块是使用 release 构建类型构建的,而不是我用来启动构建的相同 beta-build-type。

自定义构建类型配置在两个模块上完全相同,因此使用 beta 构建类型手动构建磨损模块确实有效。但是使用 beta 构建的 wear 模块并打包在同样使用 beta 构建的 app 模块中是行不通的。

有什么想法可以实现吗?

【问题讨论】:

  • 您的意思是要始终使用发布构建类型构建Wear 模块,无论您的App 模块的构建类型是什么?
  • 不,这是默认的工作方式。我在应用程序上做了一个 aasembleBeta,它在 assembleRelease 中建立了磨损依赖关系。我想要的是磨损模块也是建立在assembleBeta上的。否则我的包名不匹配...
  • 另一个问题 - 测试版和正式版应用有什么不同?
  • 包名和它连接的后端。客户需要这种设置
  • 好的。服务器名称对于手表应用程序并不重要,但包名称可能很重要(如果您想在同一设备上拥有两个应用程序 - 开发和生产)

标签: android build gradle android-gradle-plugin


【解决方案1】:

我不知道是否可以将构建变体从一个项目连接/链接到另一个项目。

但这里有解决方法。您可以构建不依赖于项目但依赖于已构建 apk (https://developer.android.com/training/wearables/apps/packaging.html) 的应用程序。因此,您必须单独构建 Wear 应用变体,并将该工件包含到您的应用工件中。

dependencies {
  ...
  wearApp files('/path/to/wearable_app.apk')
}

更新 其实是可以的:

productFlavors {
        dev {
        }

        prod {
        }
    }
...
devWearApp project(path: ':wearable', configuration: 'devRelease')
prodWearApp project(path: ':wearable', configuration: 'prodRelease')

感谢 Muzei 应用 https://github.com/romannurik/muzei/blob/master/main/build.gradle

【讨论】:

  • 我想过,但这一点都不方便。像 Gradle 这样的工具应该可以做到这么简单。但是到目前为止没有在文档中找到任何可以完成它的东西......也许这是一个隐藏良好的功能......
猜你喜欢
  • 1970-01-01
  • 2011-08-05
  • 1970-01-01
  • 2016-03-11
  • 1970-01-01
  • 1970-01-01
  • 2020-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多