Android Studio 每個版本生成的方法都不相同.
一、生成不帶混淆的jar包:
1.首先在需要出jar包的module專案下找到 build.gradle檔案,在最下面直接添加task任務:
task makeJar(type: Jar, dependsOn: ['compileReleaseJavaWithJavac']) {
destinationDir = file('build/libs/jar/')//jar包保存位置
baseName =test // Jar名稱
from('build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/')
exclude('**/BuildConfig.class') //exclude 命令就是 新jar包需要洗掉的類或檔案
exclude('**/BuildConfig\$*.class')
exclude('**/R.class')
exclude('**/R\$*.class')
include('**/*.class')
}
2.點擊AS最下面的Terminal,用命令列執行任務,在命令列輸入 gradlew makeJar,這樣整個工程里面包含makeJar的task任務都會執行,一次性全部出jar包.

看到下圖執行成功即可

如對您有幫助,請點個贊再走吧?
二、生成帶混淆的jar包
1.首先在需要出jar包的module專案下找到 build.gradle檔案,在最下面直接添加task任務:
task makeJar(type: Jar, dependsOn: ['compileReleaseJavaWithJavac']) {
destinationDir = file('build/libs/jar/')//jar包保存位置
baseName =test // Jar名稱
from('build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/')
exclude('**/BuildConfig.class') //exclude 命令就是 新jar包需要洗掉的類或檔案
exclude('**/BuildConfig\$*.class')
exclude('**/R.class')
exclude('**/R\$*.class')
include('**/*.class')
}
task proguardJar(dependsOn: ['makeJar'], type: proguard.gradle.ProGuardTask) {
//Android 默認的 proguard 檔案
configuration android.getDefaultProguardFile('proguard-android.txt')
//manifest 注冊的組件對應的 proguard 檔案
configuration 'proguard-rules.pro'
String inJar = makeJar.archivePath.getAbsolutePath()
//輸入 jar
injars inJar
//輸出 jar 的位置和名稱
String outJar = inJar.substring(0, inJar.lastIndexOf(File.separator)) + "/proguard-${makeJar.archiveName}"
outjars outJar
//設定不洗掉未參考的資源(類,方法等)
dontshrink
}
afterEvaluate {
bundleRelease.dependsOn libCopy
}
2.點擊AS最下面的Terminal,用命令列執行任務,在命令列輸入 gradlew proguardJar ,這樣整個工程里面包含proguardJar的task任務都會執行,一次性全部出jar包.此處不需要先執行 gradle makeJar命令.
如對您有幫助,請點個贊再走吧?
最后直接在上面自己設定的目錄下找到新jar包即可:

一定要打開test.jar包檢查資源類是否完整
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/233633.html
標籤:其他
