我在工作中从事一个大项目,我在 3 个月前被继承了。目前项目结构是这样的:
- 引擎:它是一个包含我的全部代码(所有 Java 类)和一些外部库的库
- 应用程序:它是一个 android 项目,但它只是一个包装器,用于具有 2 个不同风格的应用程序(用于商业目的的不同名称和图标)。引擎库已集成到此应用中。
此外,有时我确实会为一个使用没有应用程序包装器的库的客户构建 .aar 引擎。
我的大问题:这个项目的最后一个 developepr 不太了解 gradle 和 android 结构,它是一些奇怪的 res 在 Engine 和 App/build script/extern lib 中添加了两次......
所以,在我开发新的主要版本之前,我想重构构建系统并简化它!在最好的情况下,我想删除 lib 项目,将引擎代码添加到应用程序,因为只有 1 个项目应用程序并使用强大的风格来管理特定部分。
如果我有这样的口味:
- 一个
- 两个
- 图书馆
可以使用 flavor "lib"来获得 .aar 吗?
如果您有其他解决方案来简化或解决我的问题,我就结束了。提前致谢:)
最佳答案
您有没有描述过,一个同时输出 .aar 和 .apk 的应用程序模块是不可能的 afaik,您的模块必须是一个库或一个应用程序,而不是两者。 (即在您的 build.gradle 中:apply plugin: 'com.android.application'
或 'com.android.library'
)。
我的猜测是(Android studio 1.5.1):
- 单个 Android Studio 项目,
- 两个模块,一个库模块和一个应用程序模块(文件 -> 新建... -> 新建模块... -> 一个“Android 库”和一个“手机或平板电脑模块”)
- 在应用模块中,您品牌的 2 种风格。
- 将库模块作为依赖项集成到您的应用程序模块中(在您的应用程序
build.graddle
依赖项部分:compile project(path : ':yourlibrarymodule')
)
您的资源可以存储在您的库中(可在您的库和您的应用程序中使用而无需重复)、在您的应用程序中以主要风格(可在您的 2 种风格中使用而无需重复)或在您的两种风格中存储。
因此,您可以通过构建库模块生成 .aar
,通过构建应用模块生成两个 .apk
。
关于android - 可以获得具有产品 flavor 的 .aar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35225988/