可以获得具有产品风味的.aar

时间:2016-02-05 13:57:33

标签: android android-studio gradle android-gradle android-productflavors

我在工作的一个大项目上工作,3个月前我已经被吸食了。目前项目结构是这样的:

  • 引擎:它是一个包含我的整个代码(所有java类)和一些外部库的库
  • 应用程序:它是一个Android项目,但它只是一个包装有2个declinaisons风格的应用程序(不同的名称和图标用于商业目的)。引擎lib已集成到此应用程序中。

另外,有时我会为一个使用没有app包装器的库的客户端构建.aar引擎。

我的大问题:这个项目的最后一个开发伙伴不熟悉gradle和android结构,它是一些奇怪的res在Engine和App / build script / extern lib中添加了两次......

所以,在我开发一个新的主要版本之前,我想重新构建系统并简化它!在最好的世界中,我想删除lib项目,将引擎代码添加到App,因为只有1个项目应用程序并使用flavor的功能来管理特定部分。

如果我有这样的口味:

  • 一个
  • 2
  • LIB

可以使用风味" lib"得到一个.aar?

如果您有其他解决方案来简化或解决我的问题,我会结束。在此先感谢:)

1 个答案:

答案 0 :(得分:1)

你有没有描述过,单个应用程序模块同时输出.aar和.apk是不可能的,你的模块必须是库或应用程序,而不是两者。 (即在build.gradle中:apply plugin: 'com.android.application''com.android.library')。

我的猜测是(Android studio 1.5.1):

  • 单个Android Studio项目
  • 两个模块,一个库模块和一个应用程序模块(文件 - >新... - >新模块... - >一个“Android库”和一个“手机或平板电脑模块”)
  • 在app模块中,您的品牌有两种口味。
  • 将库模块作为依赖项集成到您的应用模块中(在您的应用build.graddle依赖关系部分:compile project(path : ':yourlibrarymodule')

您的资源可以存储在您的库中(可以在您的lib和您的应用程序中使用,无需重复),在主要风格的应用程序中存储(可以在两种风格中使用,无需重复)或两种风格。

因此,您可以通过构建库模块来生成.aar,并通过构建应用模块来生成两个.apk