Android studio生成jar包
阿新 • • 發佈:2019-01-05
1.將app依賴一個moudle。
2.執行app。這是在build/intermediates/bundles/debug or release/目錄下回看到一個classer.jar (這個就是生成的jar)
3.在moudle 的build.gradle中新增如下程式碼,下面這些程式碼是將原本的classer.jar轉成自定義的jar
apply plugin: 'com.android.library' def releaseTime() { return new Date().format("yyyy.MM.dd", TimeZone.getTimeZone("UTC")) } android { compileSdkVersion 26 buildToolsVersion "26.0.2" defaultConfig { minSdkVersion 18 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { // 混淆 todo-打jar包的時候變為 true false minifyEnabled true // Zipalign優化 zipAlignEnabled true // 移除無用的resource檔案 shrinkResources true // 前一部分代表系統預設的android程式的混淆檔案,該檔案已經包含了基本的混淆宣告, // 後一個檔案是自己的定義混淆檔案 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } lintOptions { abortOnError false } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:26.0.0-alpha1' testCompile 'junit:junit:4.12' } task clearJar(type: Delete) { def fileName = "Sdk-${android.defaultConfig.versionName}-v1.1-${releaseTime()}.jar" delete fileName////這行表示如果你已經打過一次包了,再進行打包則把原來的包刪掉 } task makeJar(type: Copy) { // build/intermediates/bundles/release/ from('build/intermediates/bundles/release/') //這行表示要打包的檔案的路徑,根據下面的內容,其實是該路徑下的classes.jar into('build/libs/') //這行表示打包完畢後包的生成路徑,也就是生成的包存在哪 include('classes.jar') //看到這行,如果你對分包有了解的話,你就可以看出來這行它只是將一些類打包了 def fileName = "Sdk-${android.defaultConfig.versionName}-v1.1-${releaseTime()}.jar" rename('classes.jar', fileName) } makeJar.dependsOn(clearJar, build)
4.重新sync now一下。
5.點選android studio右邊的gradle,然後找到自己的module名字點選進去,然後點選Tasks後找到other點選計入,找到makeJAr 雙擊,
6.jar包生成後你會在build/libs/目錄下找到。例如Sdk-1.0-v1.1-2018.07.18.jar