V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Tneciv
V2EX  ›  Android

Android Studio 打 Jar 包混淆的一点问题

  •  
  •   Tneciv · 2016-07-13 10:39:03 +08:00 · 9553 次点击
    这是一个创建于 3053 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在的情况是,打出的 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 之外 其他的都没了。。。

    第 1 条附言  ·  2016-07-13 11:16:44 +08:00

    问题已解决,是因为未开启-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
    
    5 条回复    2016-07-13 19:23:58 +08:00
    mengrusheng
        1
    mengrusheng  
       2016-07-13 11:39:35 +08:00
    mark
    21grams
        2
    21grams  
       2016-07-13 12:27:18 +08:00 via Android
    AS 可以输出 jar 了吗,不是只能是 aar 吗
    Tneciv
        3
    Tneciv  
    OP
       2016-07-13 12:38:53 +08:00
    @21grams 自己把生成的.class 打成 jar
    SoloCompany
        4
    SoloCompany  
       2016-07-13 17:32:50 +08:00
    都 dontshrink 了还执行 proguard 有啥意义呢
    Tneciv
        5
    Tneciv  
    OP
       2016-07-13 19:23:58 +08:00 via Android
    @SoloCompany dontshrink 和混淆并没有直接关系 只是不删除未引用的资源而已 自己试试就知道了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3266 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 00:05 · PVG 08:05 · LAX 16:05 · JFK 19:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.