首先我們來說下打成jar包的分類:
1.application應用打成jar包
2.內庫打成jar包
不管是那種打包jar包都得變成內庫,所以當一種方法講解了。
打jar包之前得讓你的項目成內庫:如何變成內庫呢?
看下內庫文件的圖標如下圖:
如下兩點:
先將你項目gradle文件最上面的
apply plugin: 'com.android.application'
改為:apply plugin: 'com.android.library'
然后注釋掉 applicationId這行代碼
如下圖:
如果你項目就是內庫那就可以跳過上面的步驟直接從下面步驟開始打包了
然后將下面這行代碼放到gradle文件的android里面與defaultConfig,buildTypes目錄同一等級如下圖:
下面的makeJar只是一個方法名稱可以隨意取名,但是take makeJar這個里面的方法必須得和下面的makeJar.dependsOn(build)這里面的makeJar方法名稱一致,然后在cmd命令里面輸入gradlew 方法名稱(如果方法名稱是makeJar就輸入makeJar是takeJar就輸入takeJar即可生成jar包)
-
task makeJar(type: Copy) {
-
//刪除存在的
-
delete 'build/libs/myjar.jar'
-
//設置拷貝的文件
-
from( 'build/intermediates/bundles/debug/')
-
//打進jar包后的文件目錄
-
into( 'build/libs/')
-
//將classes.jar放入build/libs/目錄下
-
//include ,exclude參數來設置過濾
-
//(我們只關心classes.jar這個文件)
-
include( 'classes.jar')
-
//重命名
-
rename ( 'classes.jar', 'myjar.jar')
-
}
-
-
makeJar.dependsOn(build)
上面這行加入的代碼代表將build/intermediates/bundles/debug/目錄下生成的class.jar文件復制到build/libs/目錄下面並且重命名為myjar.jar
如下圖:
然后找到cmd命令行輸入:gradlew makeJar 回車就好了,這個命令如下圖:
回車后看下我們打包命名成功的jar包文件:
上面方法AS新版無法使用的可以使用下面AS3.4.2版本的新方法:
-
//生成jar包
-
task makeJar(type: Copy) {
-
delete 'build/outputs/network.jar'
-
from( 'build/intermediates/packaged-classes/release/') //jar文件來源
-
into( 'build/libs/') //生成路徑
-
include( 'classes.jar')
-
rename( 'classes.jar', 'smallAppJar.jar') //命名為network.jar
-
}
Android Studio4.0及以上請使用如下方法:
-
task makeJar(type: Copy) {
-
//刪除存在的
-
delete 'build/libs/myjar.jar'
-
//設置拷貝的文件
-
from( 'build/intermediates/aar_main_jar/release/')
-
//打進jar包后的文件目錄
-
into( 'build/libs/')
-
//將classes.jar放入build/libs/目錄下
-
//include ,exclude參數來設置過濾
-
//(我們只關心classes.jar這個文件)
-
include( 'classes.jar')
-
//重命名
-
rename ( 'classes.jar', 'myjar.jar')
-
}
-
-
makeJar.dependsOn(build)
1.將上面的代碼添加到gradle里面的android目錄下即可,生成jar方法可以使用上面的cmd命令行輸入:gradlew makeJar 回車就好了
2.也可以直接選擇右邊的gradle的makeJar命令如下圖:
找到makeJar后雙擊即可自動生成jar包