我想将 android 库构建为 AAR 文件,在输出 AAR 文件中包含依赖项。它使用另一个 AAR 文件作为 libs 文件夹的依赖项。
构建库显示此错误:
构建 AAR 时不支持直接本地 .aar 文件依赖项。生成的 AAR 将被破坏,因为来自任何本地 .aar 文件依赖项的类和 Android 资源不会打包到生成的 AAR 中。
构建命令有效,但它不包含 classes.jar 中的外部库
我的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 错误
最佳答案
我在尝试创建一个依赖于以 .aar 格式交付给我的 SDK 的 android 库时遇到了类似的问题。 使用较新的 AGP(Android Gradle 插件)4+,不允许在我创建的 android 库中编译 aar - 向我显示此错误: “为库模块创建 AAR 时,不支持库模块的直接本地 .aar 文件依赖项。”
我找到了这个链接 https://www.programmersought.com/article/63808911660/答案对我很有帮助,它为我提供了编译 aar 的解决方案,并允许我将它的类导入到我的 android 库中。
剪短-
- 创建libs文件夹,并将/name/.arr文件添加到libs文件夹。
- 在项目的 build.gradle 文件中,在 allprojects 范围下,
在存储库范围下,添加
flatDir { dirs 'libs' //this way we can find the .aar file in libs folder }
- 在app的build.gradle dependencies范围下添加
api(name: '/name/', ext: 'aar')
它目前有效,我希望以后没有问题,但 AS 发出警告以避免使用 flatDirs。但我在这个问题上浪费了太多时间,如果有人有更多见解,我会很乐意收到。
关于android - 创建使用 AAR 文件作为依赖项的 Android 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67093493/