【问题标题】:Generate multiple APK from one single project从一个项目生成多个 APK
【发布时间】:2014-12-17 13:46:52
【问题描述】:
我正在尝试了解如何从一个项目生成多个 APK。
我正在使用 gradle,这是我项目的三个:
-
ambrogiocore 是实现所有通用类和资源的核心库模块。
-
ambrogioremote 是具有 :ambrogiocore 依赖的模块。
这是工作。现在我可以生成多个 APK。 (目前只有一个)
每个模块一个 apk。
问题是我需要手动同步所有 AndroidManifest.xml,以便将来包含在我的项目中的每个模块。
这是正确的方法吗?
我可以自动执行此操作吗?
我看了productFlavor。只是我不明白这个工具是否可以帮助我。
你怎么看?
谢谢大家!
**解决方案**
终于!我找到了@Kai 提出的相同解决方案!
味道才是王道!
这是最好的方法有很多原因:
- 单模块项目
- 您不需要复制 XML 文件
-
RoboGuice 会像魅力一样工作。 (RoboGuice 在图书馆项目中提出了一些大问题)
http://www.techotopia.com/index.php/An_Android_Studio_Gradle_Build_Variants_Example
【问题讨论】:
标签:
android
build
gradle
apk
【解决方案1】:
如果“一个单一的源核心和扩展“ProductName”、“PackageName”和“resources”的多个项目,您的意思是为每个风味提供唯一的“ProductName”、“PackageName”和"resources",然后是的就可以了。
要为每种口味提供自己独特的包装,请为您的每种口味设置applicationId,如下所示:
android {
productFlavors {
flavor_1 {
applicationId = 'com.app.flavor_1'
}
flavor_2 {
applicationId = 'com.app.flavor_2'
}
}
}
要为每个风味赋予其自己的应用名称和资源,只需将它们放在风味自己的目录中,Gralde 就会将风味的资源与您的基础资源合并以创建完整的资源。
有关 Gralde 风味如何发挥作用的更多详细信息,请参阅 Gradle Plugin User Guide
【解决方案2】:
这是我的最终解决方案!
- 所有公共文件、清单和基础资源都在 "src/main" 下
- 我将我的项目移到 "src/projects"
- 声明了两个 productFlavor(每个项目一个)指定 applicationId 和 versionName
- 创建了两个 sourceSet(每个项目一个)指示特定的 res 文件夹。