JarFilterPlugin icon indicating copy to clipboard operation
JarFilterPlugin copied to clipboard

混淆问题

Open yangjieK opened this issue 2 years ago • 2 comments

感谢博主回信,因此我特地列出更详细问题反馈给您.

Gradle 6.7.1 JarFilter插件版本 1.4 ~2.4版本.

  1. 1.4版本过滤被替换, 但release混淆编译失败

  2. 2.4版本编译成功, 没有过滤成功, 同时 release混淆编译失败, 原因都是 存在相同两个类.

需求目的是, 用自己的类替换第三方类

apply plugin: "jar-filter"

//2.4版本 这个过滤是无效的,我在app模块创建包名和类相同
//org/eclipse/paho/client/mqttv3/logging/LoggerFactory.class,替代第三方的LoggerFactory
// debug 编译成功过,类没有被移除
// release 混淆,编译失败. 异常提示 相同类被定义多次
jarFilters {
    "org.eclipse.paho:org.eclipse.paho.client.mqttv3:(.*)" {
        excludes = [
                'org/eclipse/paho/client/mqttv3/logging/LoggerFactory.class',
                'org/eclipse/paho/client/mqttv3/internal/MessageCatalog.class'
        ]
    }
}

//1.4版本 这个过滤是有效的,我在app模块创建包名和类相同
//org/eclipse/paho/client/mqttv3/logging/LoggerFactory.class,替代第三方的LoggerFactory
// debug是成功的, 一旦混淆就会提示 该类存在两个相同类多次被定义
jarFilter {
  excludes = [
                'org/eclipse/paho/client/mqttv3/logging/LoggerFactory.class',
                'org/eclipse/paho/client/mqttv3/internal/MessageCatalog.class'
        ]
}

yangjieK avatar Jul 03 '22 01:07 yangjieK

@yangjieK 我今天大概尝试了下,发现 gradle 和 android gradle plugin 的 api 改动挺大的(相较于我还在做 android 开发的三年前),我目前没法快速地 fix 这个问题。如果社区没有人能解决的话,建议你弃用这个插件吧,因为我个人也很长一段时间不会回到 android 开发领域了。

nekocode avatar Jul 03 '22 11:07 nekocode

@yangjieK 我今天大概尝试了下,发现 gradle 和 android gradle plugin 的 api 改动挺大的(相较于我还在做 android 开发的三年前),我目前没法快速地 fix 这个问题。如果社区没有人能解决的话,建议你弃用这个插件吧,因为我个人也很长一段时间不会回到 android 开发领域了。

看到本尊的回答 心里也差不多凉透了 !

感谢作者的贡献 至少老版本还可以用 !!!!

BennyTian avatar Feb 12 '23 08:02 BennyTian