【问题标题】:Generating android apks from android project with multiple source set with gradle使用 gradle 从具有多个源集的 android 项目生成 android apk
【发布时间】:2015-09-04 13:35:59
【问题描述】:

我有一个 Android 应用程序,它有多个可以构建的源。

例如

 src/x/java
 src/y/java
 src/z/java 

build.gradle 文件中,我有一个包含这些来源的productFlavours 标记。我知道如何从 Eclipse 手动(在不同来源之间切换),但我感兴趣的是以下内容:

如何从终端为这些项目中的每一个生成一个 apk,但仍然让所有这些 apk 具有相同的应用程序包名称(我现在正在使用 robotium,所以我需要apk 与我从 eclipse 手动构建的 apk 具有相同的包名称)。

相信我,我在这里问之前阅读了很多,但我无法成功,也许我做错了什么,或者我完全不知道,我不知道,但无论我看哪里,没有人给点东西喜欢

第 1 步 ... 第 n 步等,但他们没有抓住重点。

【问题讨论】:

  • 嗨!我曾经在这类问题上做了很多工作,你能提供一个编码示例吗?也许存储在 github 上的一个小项目说明了您的问题?基本上,您希望使用终端从一个源切换到另一个源,同时始终保持相同的包名称。这些是android库吗?
  • 这正是你所说的。在 eclipse 中,我有 2 个源目录:“main”,另一个连接到我正在构建应用程序的文件夹,例如:src/main 和 src/x,它们被 eclipse 视为源目录。如果我右键单击项目 -> 属性 -> java build patch -> 源,我可以删除“src/x”并放入“src/y”。我不能举一个代码的例子,因为它不是我的,我很抱歉,我希望你明白我想说什么。
  • 能否提供项目自带的gradle文件?我很确定你会用风味或构建类型做一些事情。

标签: android gradle


【解决方案1】:

也许您可以使用风味或构建类型:

productFlavors {
    flavor2 {}
    flavor1 {}
}

sourceSets{
    flavor1.java.srcDirs = ['src-flavor1'] 
    flavor1.res.srcDirs = ['res-flavor1']
    ...

    flavor2.java.srcDirs = ['src-flavor2'] 
    flavor2.res.srcDirs = ['res-flavor2']
    ...
}

这里有一个很好的link 即将正确执行此操作。我希望这能回答你的问题。

【讨论】:

  • 毕竟我设法让它工作了。我使用了您提供的链接中的风味,并且效果很好。谢谢你。对于和我一样情况的每个人,不要忘记在 sourceSets 中添加东西,而不仅仅是风味。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-22
  • 1970-01-01
相关资源
最近更新 更多