android - 创建使用 AAR 文件作为依赖项的 Android 库

标签 android gradle sdk aar

我想将 android 库构建为 AAR 文件,在输出 AAR 文件中包含依赖项。它使用另一个 AAR 文件作为 libs 文件夹的依赖项。

enter image description here

构建库显示此错误:

构建 AAR 时不支持直接本地 .aar 文件依赖项。生成的 AAR 将被破坏,因为来自任何本地 .aar 文件依赖项的类和 Android 资源不会打包到生成的 AAR 中。

我尝试将 AAR 文件提取为模块 enter image description here

然后导入为项目 enter image description here

构建命令有效,但它不包含 classes.jar 中的外部库 enter image description here

我的proguard-rules.pro文件是

-dontwarn javax.annotation.Nullable
-dontwarn com.facetec.sdk.**
-keep class com.facetec.sdk.** { *; }

我也试过使用 https://github.com/kezong/fat-aar-android库和导入的 facetec-sdk 模块作为嵌入项目,但构建命令显示 lint 错误

enter image description here

最佳答案

我在尝试创建一个依赖于以 .aar 格式交付给我的 SDK 的 android 库时遇到了类似的问题。 使用较新的 AGP(Android Gradle 插件)4+,不允许在我创建的 android 库中编译 aar - 向我显示此错误: “为库模块创建 AAR 时,不支持库模块的直接本地 .aar 文件依赖项。”

我找到了这个链接 https://www.programmersought.com/article/63808911660/答案对我很有帮助,它为我提供了编译 aar 的解决方案,并允许我将它的类导入到我的 android 库中。

剪短-

  1. 创建libs文件夹,并将/name/.arr文件添加到libs文件夹。
  2. 在项目的 build.gradle 文件中,在 allprojects 范围下, 在存储库范围下,添加
    flatDir {
        dirs 'libs' //this way we can find the .aar file in libs folder
    } 
    
  3. 在app的build.gradle dependencies范围下添加
api(name: '/name/', ext: 'aar')

它目前有效,我希望以后没有问题,但 AS 发出警告以避免使用 flatDirs。但我在这个问题上浪费了太多时间,如果有人有更多见解,我会很乐意收到。

关于android - 创建使用 AAR 文件作为依赖项的 Android 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67093493/

相关文章:

android - 是否可以重新安装已删除的 Android API?

android - 如何接受许可以安装SDK软件包

android - 多个 Android 应用程序依赖于带有 gradle 的 android 库

apache-flex - 免费的 Flex SDK 中是否提供 Flex 图表?

ios - Flurry 4.2.2 SDK 不在 iOS 中发送事件 session 数据

java - 在自定义适配器中传递 arrayList

android - 从 AsyncTask 更新 ListView

android - 尝试对 LatLng 数组的距离求和

java - 如何将所有子目录包含为 gradle 模块?

android - 任务 ':app:compileDebugKotlin'的执行失败。 >内部编译器错误。请参阅日志以获取更多详细信息