AndroidStudio gradle task 單獨混淆jar包(偷懶)
阿新 • • 發佈:2019-01-27
AndroidStudio gradle task 單獨混淆jar包
AndroidStudio匯出arr時可以直接配置混淆,但是我沒有資原始檔可以用只想匯出jar包,編譯後生成的class沒有混淆,需要單獨混淆。
可是每次混淆都需要把jar包考到外部使用proguardJar單獨混淆,那麼能不能直接在gradle中完成呢?
當然可以
task proguardJar(type: proguard.gradle.ProGuardTask) {
printmapping "$buildDir/libs/proguard/proguardMapping.txt"
//Android 預設的 proguard 檔案
configuration android.getDefaultProguardFile('proguard-android.txt')
//載入各模組proguard配置檔案
configuration 'proguard-rules.pro'
printmapping "$buildDir/libs/mapping.txt"
//設定不刪除未引用的資源(類,方法等)
//dontshrink
libraryjars files(configurations.compile.findAll {}.collect())
// java
libraryjars "<java.home>/lib/rt.jar"
libraryjars "<java.home>/lib/jce.jar"
// libraryjars "${System.getenv('ANDROID_SDK_HOME')}/extras/android/m2repository/com/android/support/support-v4/19.0.0/support-v4-19.0.0.jar"
// android
libraryjars "${System.getenv('ANDROID_SDK_HOME')}/platforms/android-26/android.jar"
injars "填入jar包的檔案目錄.jar"
outjars "填入jar包的匯出目錄.jar"
}
並且官方預設的proguard.pro需要在debug或者release下配置
minifyEnabled true
否則可能會提示找不到檔案
執行這個任務的前提是你需要編譯一次程式碼即可
最後在命令列執行
./gradlew :lib名稱:proguardJar
或者windows上
gradlew :lib名稱:proguardJar