AndroidStudio 用Gradle把Moudle打成jar包
說明:
AndroidStudio 把Moudle打成jar包,使用Gradle命名配置要打包的內容,然后使用命令行執行打包。
大哥們寫文章很累,轉載請說出處呀!AndroidStudio 把Moudle打成jar包
項目結構:
juhepay是項目,juhepaysdk是這個項目依賴的Moudle,目的是吧juhepaysdk大成jar包,放到app的libs下面能繼續使用。
步驟:
1、首先在juhepaysdk(你要打包成jar的Moudle)下面的build.gradle里面寫入要打包的語句:
build.gradle:在android{ }里面添加如下代碼
?
//打jar包// Copy類型task makeJar(type: Jar) {archiveName = 'baofoo-juhepay-v1.0-demo.jar' //最終jar包的名稱from(project.zipTree('build/intermediates/bundles/release/classes.jar')) //需要打的juhepaysdk的編譯文件from(project.zipTree('build/intermediates/bundles/release/libs/banksdk.jar')) //需要打的juhepaysdk所以來的jar包from(project.zipTree('build/intermediates/bundles/release/libs/libammsdk.jar')) //需要打的juhepaysdk所以來的jar包destinationDir = file('build/libs') //jar包輸出路徑}makeJar.dependsOn(build) //必須寫的配置然后在AndroidStudio-Terminal中輸入命令: ./gradlew makeJar 或者在Android Studio右側 Gradle - 要打包的module - Tasks - ohter - 雙擊makeJar
項目就會執行命令,最終會在juhepaysdk-build-libs下面生成baofoo-juhepay-v1.0-demo.jar包。
?
2、上面的操作的截圖
命令行執行最終出現:
?
這樣就jar包就打成了。
命令行原理:
其實打包的原理就是把Moudle(juhepaysdk包)運行編譯后的classes.jar文件改個名字變成自己的jar包。
如果你的Moudle(juhepaysdk包)沒有依賴第三方jar包,你不用操作操作上面的步驟,不用寫命令執行命令,直接把classes.jar拷貝走就可以直接使用了。
但是大部分的Moudle(juhepaysdk包)會依賴第三方庫,例如微信支付等jar包,這個時候就不能單單的把classes.jar打包走這么簡單了,還需要把這些第三方庫一起打進去。
這里我遇到了一個大坑:
最早我直接把from的地址攜程libs下面的jar文件了,這樣打成的jar包會出現包沖突,如下錯誤打包方式:
而是應該把編譯好的第三方jar包和classes.jar一起打進jar包,下面是正確的打包方式:
至此打包完成,真的很浪費時間,還是以前的Eclipse使用的工具直接打包簡單。
出錯坑二:
如果在運行 gradlew makeJar 命令時出現如下錯誤(mylibrary為我的library庫的名稱):
?
Execution failed for task ':mylibrary:lint'. > Lint found errors in the project; aborting build. 則在mylibrary目錄下的build.gradle文件中,加入下面的代碼塊(注意代碼塊所在的位置),重新執行 gradlew makeJar 命令即可:?
?
lintOptions {abortOnError false}?
注釋:打包命令task...放在android里面和外面都可以!
?
或者用系統自帶的工具執行命令:
找到你的Module下面的build.gradle,右側工具Gradle,找到對應Module下面的makejar雙擊執行
?
PS~代碼另一種寫法:
?
task makeJar(type: Copy) {delete 'build/libs/IMAF.jar'from('build/intermediates/bundles/release/')include('classes.jar')into('build/libs/')rename ('classes.jar', 'IMAF.jar') }這種寫法和上面的寫法第一排區別是:這里用的Copy只是把classes.jar包拷貝成IMAF.jar包了,適合沒有以來的Moudle項目,如果你的Moudle有依賴,則還是用Jar命令吧!
?
總結
以上是生活随笔為你收集整理的AndroidStudio 用Gradle把Moudle打成jar包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谷歌Android无障碍套件,andro
- 下一篇: import java.awt.Bord