[英]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
文件和src
和res
目錄:
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知道如何導入這樣的模塊。 請按照以下步驟操作:
將apklib解壓縮到臨時目錄中。 它是zip格式,所以像unzip library.apklib
應該可以工作。
看看什么是解壓縮的。 您應該看到一個包含AndroidManifest.xml
, src
和res
文件夾的目錄。
在Android Studio中,在現有項目中,選擇“文件”>“導入模塊”,然后將其指向步驟2中的目錄。
Android Studio應該通過在新模塊中將文件復制到項目中,將它們安排在首選目錄結構中來管理導入,並為模塊添加build.gradle
文件。
此時你已經開始運行了。 如果您確實需要.aar
文件,請檢查新模塊是否設置為庫模塊或應用程序模塊。 在它的build.gradle
,如果你有apply plugin: 'com.android.library'
那么它就是一個庫模塊,Gradle將生成一個.aar
作為構建的一部分:它將在build/outputs/aar
成功構建后的目錄。
如果你的模塊是作為app模塊而不是庫導入的( apply plugin: 'com.android.application'
,那么更改那個apply plugin
語句,你可能還需要從構建文件中刪除applicationId
語句。現在它應該編譯作為庫並生成.aar
。
快樂的編碼!
你不能將apklib轉換為aar。 您必須手動更新依賴項以指向aar文件。 aar被編譯並包含lint和proguard規則,apklib不一定能自動確定。
您可以在這里閱讀更多有關差異的內容:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.