qq549631030 / AndroidJunkCode

Android马甲包生成垃圾代码插件
1.09k stars 252 forks source link

1.3.0不加混淆配置的情况下打出来的Relase包有问题,自动生成的混淆文件没有起到作用 #69

Closed lostmemoryhp closed 1 year ago

lostmemoryhp commented 1 year ago

AndroidJunkCode版本:1.3.0

gradle版本:7.3.3

AGP版本:7.2.0

JDK版本:11.0.15

productFlavors配置: xxdemo { applicationId "com.xxdemo.sample" versionCode 1 versionName "1.0" signingConfig signingConfigs.xxdemo manifestPlaceholders = [APP_NAME : "demo", APP_ICON : "@mipmap/icon"] }

androidJunkCode配置: androidJunkCode { def config = { android.applicationVariants.all { variant -> packageBase = variant.applicationId } packageCount = 30 activityCountPerPackage = 31 excludeActivityJavaFile = false otherCountPerPackage = 31 methodCountPerClass = 31 resPrefix = "xxdemo_" drawableCount = 103 stringCount = 103 } variantConfig { android.applicationVariants.all { variant -> "${variant.productFlavors[0].name}Release" config } } } bug描述: 不加混淆配置的情况下打出的release包的代码中,自动生成的activity代码除了onCreate方法外其他代码都不见了

qq549631030 commented 1 year ago

1.3.1已修复

lostmemoryhp commented 1 year ago

1.3.1已修复 升级到1.3.1后,同步报错,错误如下

FAILURE: Build failed with an exception.

CONFIGURE FAILED in 20s

qq549631030 commented 1 year ago

你这里不要用这种方式配置,插件目前还不支持这样动态的

android.applicationVariants.all { variant ->
"${variant.productFlavors[0].name}Release" config
}
lostmemoryhp commented 1 year ago

好的

lostmemoryhp commented 1 year ago

你这里不要用这种方式配置,插件目前还不支持这样动态的

android.applicationVariants.all { variant ->
"${variant.productFlavors[0].name}Release" config
}

1.3.0版本是没报错的, 1.3.1才报的错,而且1.3.0用这个动态配置也是可以的,就是混淆有问题而已, 有一个建议,不知道是否可以简单解决这个问题,就是每个自动生成的类都加上@Keep,这样就不需要混淆配置了,是不是就可以去掉生成混淆配置的代码,就不会报错了。 主要是这样动态配置比较方便

qq549631030 commented 1 year ago

1.3.0版AGP 7.4.0以下没用懒加载,1.3.1把懒加载兼容到AGP7.0.0了; 加@Keep 要引入support包或者androidx包,有些老项目不一定会用这些包

lostmemoryhp commented 1 year ago

1.3.0版AGP 7.4.0以下没用懒加载,1.3.1把懒加载兼容到AGP7.0.0了; 加@keep 要引入support包或者androidx包,有些老项目不一定会用这些包

明白了,谢谢