簡體   English   中英

如何將apklib轉換為aar

[英]How to convert apklib to aar

由於Gradle不支持apklib依賴項,如何從apklib依賴項遷移到aar依賴項? 是否可以手動或自動將apklib依賴項轉換為aar 如果是 - 如果沒有 - 為什么不呢?

在這個問題中,我假設我沒有apklib原始項目,而是文件本身。

apklib不包含目標文件,只包含源文件,因此它可以包含在任何項目中的唯一方法是重新編譯它。 根據一些文檔,您可以閱讀:

Android依賴項:apklib vs aar文件https://plus.google.com/+ChristopherBroadfoot/posts/7uyipf8DTau

apklib格式被發明為一種分享Android代碼+資源的方式。 它本質上是一個壓縮的Android庫項目,它已經是代碼+資源共享的現狀。

你可以在Chris Broadfoot的帖子中看到生成apklib的任務只是拉上AndroidManifest.xml文件和srcres目錄:

task apklib(type: Zip) {
    appendix = extension = 'apklib'

    from 'AndroidManifest.xml'
    into('res') {
        from 'res'
    }
    into('src') {
        from 'src'
    }
}

請注意,他的帖子是關於從Gradle創建一個apklib,這是一個有點奇怪的事情,但它提供了一個非常清楚的想法,這些事情是如何構建的。

好消息是,當Eclipse是主IDE時,這是“標准”的Android項目結構,Android Studio知道如何導入這樣的模塊。 請按照以下步驟操作:

  1. 將apklib解壓縮到臨時目錄中。 它是zip格式,所以像unzip library.apklib應該可以工作。

  2. 看看什么是解壓縮的。 您應該看到一個包含AndroidManifest.xmlsrcres文件夾的目錄。

  3. 在Android Studio中,在現有項目中,選擇“文件”>“導入模塊”,然后將其指向步驟2中的目錄。

  4. Android Studio應該通過在新模塊中將文件復制到項目中,將它們安排在首選目錄結構中來管理導入,並為模塊添加build.gradle文件。

  5. 此時你已經開始運行了。 如果您確實需要.aar文件,請檢查新模塊是否設置為庫模塊或應用程序模塊。 在它的build.gradle ,如果你有apply plugin: 'com.android.library'那么它就是一個庫模塊,Gradle將生成一個.aar作為構建的一部分:它將在build/outputs/aar成功構建后的目錄。

  6. 如果你的模塊是作為app模塊而不是庫導入的( apply plugin: 'com.android.application' ,那么更改那個apply plugin語句,你可能還需要從構建文件中刪除applicationId語句。現在它應該編譯作為庫並生成.aar

  7. 快樂的編碼!

你不能將apklib轉換為aar。 您必須手動更新依賴項以指向aar文件。 aar被編譯並包含lint和proguard規則,apklib不一定能自動確定。

您可以在這里閱讀更多有關差異的內容:

Android依賴項:apklib vs aar文件

暫無
暫無

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

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