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

java.lang.UnsupportedOperationException: NestHost requires ASM7 #157

Open Primer1889 opened 1 year ago

Primer1889 commented 1 year ago

java.lang.UnsupportedOperationException: NestHost requires ASM7 at org.objectweb.asm.ClassVisitor.visitNestHost(ClassVisitor.java:174) at org.objectweb.asm.tree.ClassNode.accept(ClassNode.java:399) at com.ss.android.ugc.bytex.common.visitor.ClassVisitorChain.accept(ClassVisitorChain.java:65) at com.ss.android.ugc.bytex.common.processor.ClassFileAnalyzer.handle(ClassFileAnalyzer.java:102) at com.ss.android.ugc.bytex.transformer.processor.ClassFileProcessor.process(ClassFileProcessor.java:27) at com.ss.android.ugc.bytex.transformer.processor.ProcessorChain.proceed(ProcessorChain.java:30) at com.ss.android.ugc.bytex.transformer.processor.FilterFileProcessor.process(FilterFileProcessor.java:23) at com.ss.android.ugc.bytex.transformer.processor.ProcessorChain.proceed(ProcessorChain.java:30) at com.ss.android.ugc.bytex.transformer.processor.task.TraverseTask.compute(TraverseTask.java:31) at java.base/java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020) at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

Primer1889 commented 1 year ago

Task :app:transformClassesWithShrinkRFileForCommonRelease FAILED java.lang.IllegalStateException: The configuration :app:commonReleaseRuntimeClasspath was resolved from a thread not managed by Gradle.

可我本地已经使用 ASM9.4

implementation 'org.ow2.asm:asm:9.4' implementation 'org.ow2.asm:asm-commons:9.4' classpath 'com.android.tools.build:gradle:4.1.2' distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip

Knight-ZXW commented 1 year ago

你可以通过 byteX的配置 来支持, 通过修改根工程目录的 gradle.properties ,增加以下配置。 bytex.ASM_API=ASM7