从一个项目生成多个APK

时间:2014-12-17 13:46:52

标签: android build gradle apk

我试图了解如何从一个项目中生成多个APK。

我使用gradle,这是我的项目的三个:

enter image description here

  • 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

2 个答案:

答案 0 :(得分:0)

如果通过" 一个单一的源核心和多个项目扩展了" ProductName"," PackageName"和"资源" "你的意思是为每种风味提供独特的" ProductName"," PackageName"和"资源",然后它可以完成。

要为每种口味提供独特的包装,请为每种口味设置applicationId,如下所示:

android {
    productFlavors {
        flavor_1 {
            applicationId = 'com.app.flavor_1'
        }

        flavor_2 {
            applicationId = 'com.app.flavor_2'
        }
    }
}

要为每种风味提供自己的应用名称和资源,只需将它们放在风味自己的目录中,Gralde就会将风味资源与您的基础资源合并,以创建一个完整的风格。

有关Gralde口味如何运作的更多详情,请参阅Gradle Plugin User Guide

答案 1 :(得分:0)

这是我的最终解决方案!

  • 所有常用文件,清单和基本资源都在 " src / main"
  • 我将项目移到了 " src / projects"
  • 声明了两个productFlavor(每个项目一个),指定 applicationId versionName
  • 创建了两个sourceSet(每个项目一个),指示特定的res文件夹。

enter image description here