Android打jar,無法生成jar包的原因,以及具體流程

前言:Android可以引用jar包和aar包,兩者的區別:

jar:只包含了class文件與Mainifest.xml文件 ,不包含資源文件,如圖片等所有res中的文件。

aar:包含jar包和資源文件。


一:aar的使用

? ? 步驟一:aar的生成相對簡單,編譯完成自動生成aar文件,在Module中的build/outputs/aar/目錄下

aar目錄

? ?步驟二:拷貝aar文件到需要引用的工程libs下

aar????目錄

步驟三:在app中的build.gradle中添加紅框中的內容,點擊右上角Sync Now,即可使用aar包中的內容了。

aar配置

repositories{

?????flatDir{

????????????dirs'libs'

? ? }

}

implementation(name:'wdreaderlib',ext:'aar')


二:jar包的生成和使用

首先說下我遇到的坑,Android Studio3.1以后,build/intermediates的目錄結構發生了改變,原先的bundle目錄不見了,jar包生成的路徑改為了build/intermediates/packaged-classes/release/,好了,說下jar包生成的步驟。

步驟一:點擊File - > new Module ->選擇Android Library -> next -> finish創建Mudule

步驟二:在你的Module中的build.gradle插入以下代碼

dependencies {

implementation fileTree(dir: 'libs', include: ['*.jar'])

}

//Copy類型

task makeJar(type: Copy) {

//刪除原有jar文件

delete 'build/libs/updatelib.jar'

//設置拷貝文件

from('builbuild/intermediates/packaged-classes/release/')

//打進jar包后的文件目錄

into('build/libs/')

//將classes.jar放入build/libs/目錄下

include('classes.jar')

//重命名

rename ('classes.jar', 'updatelib.jar')

}

makeJar.dependsOn(build)


然后打開Terminal,輸入gradlew makeJar


如果你的AndroidStudio 重來沒有生成過Jar包第一次會比較慢,成功之后會出現下圖所示


在你的build/libs下就生成了jar包,可以把jar包拷貝到需要用到的項目中去,就不一一介紹了。

三:Library中引入aar報錯問題解決方法

如圖:module2引用module1,module1引用wdreaderlib.aar


需要在ylzykt52drivervice中的build.gradle中添加如下代碼,才不會引起報錯

repositories {

? ? ? flatDir {

? ? ? ? ?dirs'libs','../ylzykt52drivelib/libs'

? ? }

}

注意:是在最外層引入,如果ylzykt52drivervice上層還有module,就在上層的build.gradle中引用代碼

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。