Android Studio 生成Jar并混淆
初探:
android studio生成Jar.
android studio 自動生成aar.
1.android studio 自動生成.jar, 首先將工程作為依賴庫,build即可。

2.手動打包jar
1> 僅打包class文件
task makeJar(type: Jar, dependsOn:['build', 'targetJar']) {
from file('build/intermediates/classes/release')
//目標文件名稱
archiveName = 'un_proguard.jar'
destinationDir = file('build/libs')
exclude "lbs/tmplibary/BuildConfig.class"
exclude "lbs/tmplibary/BuildConfig\$*.class"
exclude "**/R.class"
exclude "**/R\$*.class"
//只導入資源路徑集下的部分資源
include "lbs/**/*.class"
} 2>添加assets文件
(1)直接includes assets文件即可
task makeJar(type: Jar, dependsOn:['build', 'targetJar']) {
from file('build/intermediates/classes/release')
from fileTree(dir: 'src/main', includes: ['assets/**'])
//目標文件名稱
archiveName = 'un_proguard.jar'
destinationDir = file('build/libs')
exclude "lbs/tmplibary/BuildConfig.class"
exclude "lbs/tmplibary/BuildConfig\$*.class"
exclude "**/R.class"
exclude "**/R\$*.class"
//只導入資源路徑集下的部分資源
include "lbs/**/*.class"
include "assets/**"
} (2)使用zipTree
將所需打包的assets文件打包成.zip,如下:
def zipFile = "src/main/assets.zip"
task makeJar(type: Jar, dependsOn:['build', 'targetJar']) {
from zipTree(zipFile)
from file('build/intermediates/classes/release')
//目標文件名稱
archiveName = 'un_proguard.jar'
destinationDir = file('build/libs')
exclude "lbs/tmplibary/BuildConfig.class"
exclude "lbs/tmplibary/BuildConfig\$*.class"
exclude "**/R.class"
exclude "**/R\$*.class"
//只導入資源路徑集下的部分資源
include "lbs/**/*.class"
} 3.混淆
task proguard(type: proguard.gradle.ProGuardTask, dependsOn: makeJar) {
// 輸入路徑
injars "build/libs/un_proguard.jar"
// 輸出路徑
outjars 'libs/app_proguard.jar'
// 添加配置信息
configuration 'proguard-rules.pro'
} proguard-rules.pro需要配置一下路徑
-libraryjars <java.home>/lib/rt.jar -libraryjars xxxxx/android/sdk/platforms/android-22/android.jar
注:代碼編譯出錯的情況下 添加
-dontpreverify
盡可能的時候使用
-dontwarn
忽略一些不必要的警告,以便成功打包。
完結,~_~
來自: http://my.oschina.net/u/2531612/blog/591366?fromerr=Xd1Kd7dY
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!