现在的情况是,打出的 Jar 包不开启混淆之前一切正常,开启后会丢失打进去的.class 这个是 Gradle 中的混淆 task :
task proguardJar(type: ProGuardTask, dependsOn: ['makeJar']) {
// 输入路径
injars sdkDestinationPath + '/' + unProguardJar
// 输出路径
outjars sdkDestinationPath + '/' + SDK_BASENAME + '-' + SDK_VERSION + '.jar'
// 添加配置信息
configuration 'proguard-rules.pro'
}
proguard-rules.pro 中的内容:
-keep class xyz.tneciv.deviceinfo.OkhttpUtil
#-libraryjars <java.home>/lib/rt.jar
-libraryjars sdk/platforms/android-24/android.jar
-dontwarn xyz.tneciv.deviceinfo.OkhttpUtil
现在的情况是除了-keep 的 class 之外 其他的都没了。。。
问题已解决,是因为未开启-dontshrink
的原因。
完整proguard-rules.pro如下:
# 设置不删除未引用的资源(类,方法等)
-dontshrink
-keep class xyz.tneciv.deviceinfo.OkhttpUtil
# -libraryjars <java.home>/lib/rt.jar
-libraryjars D:/application/sdk/platforms/android-24/android.jar
-dontwarn xyz.tneciv.deviceinfo.OkhttpUtil
1
mengrusheng 2016-07-13 11:39:35 +08:00
mark
|
2
21grams 2016-07-13 12:27:18 +08:00 via Android
AS 可以输出 jar 了吗,不是只能是 aar 吗
|
4
SoloCompany 2016-07-13 17:32:50 +08:00
都 dontshrink 了还执行 proguard 有啥意义呢
|
5
Tneciv OP @SoloCompany dontshrink 和混淆并没有直接关系 只是不删除未引用的资源而已 自己试试就知道了
|