1. 程式人生 > >AndroidStudio gradle task 單獨混淆jar包(偷懶)

AndroidStudio gradle task 單獨混淆jar包(偷懶)

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