bytedance / ByteX

ByteX is a bytecode plugin platform based on Android Gradle Transform API and ASM. 字节码插件开发平台
Apache License 2.0
3.13k stars 462 forks source link

ShrinkR兼容问题 #105

Open singun-lxd opened 3 years ago

singun-lxd commented 3 years ago

由于项目遇到了跟这个问题一样的情况,所以在gradle.properties里增加了一行: bytex.forbidUseLenientMutationDuringGetArtifact=true 然后就会出现以下错误:

Execution failed for task ':app:transformClassesWithShrinkRFileForApkDebug'. > java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: We found duplicate kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader class files in the project. Failed to resolve class kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader.class[ transform input: /Users/singun/Documents/Code/my_project/app/build/intermediates/transforms/appJoint/apk/debug/40.jar!kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader.class project input: /Users/singun/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.4.32/ce852b166d97f0f1991b5130c2bb02e2ef6c554e/kotlin-reflect-1.4.32.jar!kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader.class aar input:not found]

关闭ShrinkR的情况下并没有问题,能正常编译打包。

依赖插件: com.android.tools.build:gradle:4.1.1(gradle wrapper 6.5) com.bytedance.android:aabresguard-plugin:0.1.9 com.bytedance.android.byteX:base-plugin:0.2.8 com.bytedance.android.byteX:shrink-r-plugin:0.2.8

另外一个项目依赖版本一模一样,没有问题。

我们项目里有AppJoint。

singun-lxd commented 3 years ago

使用bytex.enableDuplicateClassCheck=false可以跳过,但另外一个项目并不需要打开这个开关