【问题标题】:Building AAR and APK from the same module从同一个模块构建 AAR 和 APK
【发布时间】:2021-05-11 18:44:29
【问题描述】:

我需要根据不同的构建风格从同一个模块生成 AAR 和 APK。

但是 APK 需要 applicationId,而 library 不需要。我必须在 build.gradle 中添加 if-case。 有没有更好的方法来达到同样的结果?

我当前的 gradle 文件:

productFlavors {
 generateAar {
  versionCode buildVersionCode()
  versionName getPackageName()
 }

 generateApk {
  if (!library) {
    applicationId "appId"
  }
  versionCode buildVersionCode()
  versionName getPackageName()
 }

【问题讨论】:

    标签: android gradle android-gradle-plugin aar


    【解决方案1】:

    模块可以是库或应用程序,不能同时是两者。

    您可能应该考虑将所有代码包装到一个库模块中,供应用程序模块使用(仅清单和启动器资源可绘制)

    这样,您的逻辑可以从库中打包为 aar 工件,如果在同一个项目中,您的应用模块可以直接使用它,如果在单独的项目中,也可以作为打包的工件使用。

    PS:当使用本地 aar 时,需要在依赖它的应用程序模块中明确定义对工件的传递依赖。

    此外,根据您的用例,您可能需要考虑如何通过功能或层(数据、域、演示文稿等)实现项目的模块化

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-27
      • 1970-01-01
      • 2017-01-30
      • 2012-11-16
      • 2015-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多