簡體   English   中英

創建使用 AAR 文件作為依賴項的 Android 庫

[英]Create Android library that uses AAR file as dependency

我想將 android 庫構建為 AAR 文件,其中包含 output AAR 文件中的依賴項。 它使用另一個 AAR 文件作為 libs 文件夾的依賴項。

在此處輸入圖像描述

構建庫顯示此錯誤:

Direct local.aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local.aar file dependencies would not be packaged in the resulting AAR.

我嘗試將 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 時不支持庫模塊的直接 local.aar 文件依賴項圖書館模塊..”

我能夠找到這個鏈接https://www.programmersought.com/article/63808911660/的答案對我有很大幫助,這給了我編譯 aar 的解決方案,還允許我將它的類導入我的android 庫。

剪短——

  1. 創建 libs 文件夾,並將 /name/.arr 文件添加到 libs 文件夾中。
  2. 在項目的 build.gradle 文件中,在所有項目 scope 下,在存儲庫 scope 下,添加
    flatDir { dirs 'libs' //this way we can find the.aar file in libs folder }
  3. 在應用程序的 build.gradle 下的依賴項 scope 添加
api(name: '/name/', ext: 'aar')

它目前可以工作,我希望以后不會出現問題,但 AS 發出警告,避免使用 flatDirs。 但是我在這個問題上浪費了太多時間,如果有人有更多的見解,我很樂意收到。

嘗試將依賴項放入 build.gradle:app 文件中此字符串:

api fileTree(dir: 'libs', include: ['*.aar'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM