android - 可以获得具有产品 flavor 的 .aar

标签 android android-studio gradle android-gradle-plugin android-productflavors

我在工作中从事一个大项目,我在 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/

相关文章:

android - 带参数的Gradle任务

java - 在android中识别android蓝牙设备

android - 如何防止 onItemSelected 在新实例化的 Spinner 上触发?

android - 由于 'java.lang.IllegalAccessError',检测运行失败。 Gradle + Espresso

java - 用于构建的 Android Studio 设置节点目录(原因 : error=2, No such file or directory)

android - 将 Android Studio 更新到 1.3.0 版后,出现 "NDK integration is deprecated in the current plugin"错误

gradle - Gradle依赖项声明格式(Groovy)

android - libgdx 游戏在某些设备上崩溃

添加 pdfview 库时 Android Studio 构建失败

gradle - Gradle-指定基于配置的依赖项