
现在的情况是,打出的 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 年 7 月 13 日 mark |
2 21grams 2016 年 7 月 13 日 via Android AS 可以输出 jar 了吗,不是只能是 aar 吗 |
4 SoloCompany 2016 年 7 月 13 日 都 dontshrink 了还执行 proguard 有啥意义呢 |
5 Tneciv OP @SoloCompany dontshrink 和混淆并没有直接关系 只是不删除未引用的资源而已 自己试试就知道了 |