【问题标题】:It is possible to get a .aar with a Product flavor可以获得带有 Product 风格的 .aar
【发布时间】:2016-05-15 12:55:47
【问题描述】:

我在工作中从事一个大项目,我是 3 个月前继承的。目前项目结构是这样的:

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

另外,有时我会为使用该库但没有应用包装器的客户构建引擎到 .aar。

我的大问题:这个项目的最后一个开发人员不太了解 gradle 和 android 结构,这是在 Engine 和 App/构建脚本/extern lib 中添加了两次奇怪的资源.​​.....

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

如果我有这样的口味:

  • 一个
  • 两个

可以使用风味“lib”来获取 .aar 吗?

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

【问题讨论】:

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


    【解决方案1】:

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

    我的猜测是(Android studio 1.5.1):

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

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

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

    【讨论】:

    • 好的,谢谢您的回答。因此,我限制保留当前使用的解决方案。也许我必须清理并验证整个过程,因为目前它一团糟,资源重复和风味文件夹中的其他重复。在一种情况下,我什至在 gradle 和本地文件夹中都添加了一个 extern lib (play store) :(
    • 在我看来,您当前的组织被安排在两个项目中,对吧?如果是,您可以像我在答案中所说的那样将它们合并为一个,因此您将真正简化许多过程(例如构建变体链接等)。无论如何,是的,您应该进行一些清理,甚至使用免费项目重新启动,因此您将掌握漏洞项目并能够记录它^^。
    • 目前我使用一个带有一个模块库“引擎”和一个模块应用程序的项目,也许在我的初始帖子中我使用了错误的术语:)
    • 啊,好吧,我错了! ://
    猜你喜欢
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 2021-11-05
    • 2011-01-08
    • 1970-01-01
    • 2016-11-24
    • 1970-01-01
    相关资源
    最近更新 更多