Open Ysj001 opened 4 months ago
请问一下 执行appHexaDebugBCUAppendTask 的时候 ,提示bugly 中的类已经存在怎么处理?
Task :app:appHexaDebugBCUAppendTask
BCU append input ---> /Users/feng/project/superhexa/kunmingDevMerge/kunming/app/build/bcu/appHexaDebugBCUTransformTaskNotNeed BCU append output ---> /Users/feng/project/superhexa/kunmingDevMerge/kunming/app/build/intermediates/classes/appHexaDebug BCU append isIncremental ---> false BCU append removed group:0 , size:0 BCU append modified group:0 , size:0 BCU append added group:315 , size:31435
Task :app:appHexaDebugBCUAppendTask FAILED Execution failed for task ':app:appHexaDebugBCUAppendTask'. There were multiple failures while executing work items A failure occurred while executing com.ysj.lib.bytecodeutil.plugin.AppendTask$Action /Users/feng/project/superhexa/kunmingDevMerge/kunming/app/build/bcu/appHexaDebugBCUTransformTaskNotNeed/com/tencent/bugly/proguard/A.class-crc865da686 -> /Users/feng/project/superhexa/kunmingDevMerge/kunming/app/build/intermediates/classes/appHexaDebug/com/tencent/bugly/proguard/A.class: The destination file already exists. A failure occurred while executing com.ysj.lib.bytecodeutil.plugin.AppendTask$Action /Users/feng/project/superhexa/kunmingDevMerge/kunming/app/build/bcu/appHexaDebugBCUTransformTaskNotNeed/com/tencent/bugly/proguard/i.class-crc6efb4163 -> /Users/feng/project/superhexa/kunmingDevMerge/kunming/app/build/intermediates/classes/appHexaDebug/com/tencent/bugly/proguard/i.class: The destination file already exists.
我注掉bugly 相关代码,就可以了,可能是bugly 中有类似的字节码修改逻辑,提前一步生成需要的类了
请问 这种需要升级 ASM 版本的该如何处理 PermittedSubclasses requires ASM9 Caused by: java.lang.UnsupportedOperationException: PermittedSubclasses requires ASM9 at org.objectweb.asm.ClassVisitor.visitPermittedSubclass(ClassVisitor.java:266) at org.objectweb.asm.ClassReader.accept(ClassReader.java:706) at org.objectweb.asm.ClassReader.accept(ClassReader.java:424) at com.android.build.gradle.internal.instrumentation.AsmInstrumentationManager.doInstrumentByteCode(AsmInstrumentationManager.kt:225) at com.android.build.gradle.internal.instrumentation.AsmInstrumentationManager.doInstrumentClass(AsmInstrumentationManager.kt:257) ... 255 more
AGP8+ 和 BUC 内部依赖了 ASM9,因此通常不需要去显式依赖,你可以检查下你的工程是否有依赖其他版本的 ASM 然后改到 9.2 版本
我将其他使用ASM的插件注销掉后 又报文件已经存在 Execution failed for task ':app:onLineDebugBCUAppendTask'.
There were multiple failures while executing work items A failure occurred while executing com.ysj.lib.bytecodeutil.plugin.AppendTask$Action E:\love8\app\build\bcu\onLineDebugBCUTransformTaskNotNeed\com\pgl\ssdk\A.class-crcbe86767a -> E:\love8\app\build\intermediates\classes\onLineDebug\onLineDebugBCUAppendTask\com\pgl\ssdk\A.class: The destination file already exists. A failure occurred while executing com.ysj.lib.bytecodeutil.plugin.AppendTask$Action E:\love8\app\build\bcu\onLineDebugBCUTransformTaskNotNeed\com\pgl\ssdk\E.class-crcaf6f66c4 -> E:\love8\app\build\intermediates\classes\onLineDebug\onLineDebugBCUAppendTask\com\pgl\ssdk\E.class: The destination file already exists.
Run with --info or --debug option to get more log output. Run with --scan to get full insights. Caused by: kotlin.io.FileAlreadyExistsException: E:\love8\app\build\bcu\onLineDebugBCUTransformTaskNotNeed\com\pgl\ssdk\E.class-crcaf6f66c4 -> E:\love8\app\build\intermediates\classes\onLineDebug\onLineDebugBCUAppendTask\com\pgl\ssdk\E.class: The destination file already exists. at kotlin.io.FilesKtUtilsKt.copyTo(Utils.kt:224) at kotlin.io.FilesKtUtilsKt.copyTo$default(Utils.kt:217) at com.ysj.lib.bytecodeutil.plugin.AppendTask$Action.execute(AppendTask.kt:140) at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63) at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66) at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62) at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100) at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41) at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59) at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:169) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:187) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:120) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:162) at org.gradle.internal.Factories$1.create(Factories.java:31) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249) at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109) at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:114) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:157) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:126) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ... 5 more
clean 后重新编译,如果还不行就检查这个类是不是在源码和依赖中都有
不要在本 Issues 中提新的问题,有新问题 new issue
README中提供了kts语法和groovy语法两个版本的例子,大家提问前麻烦先看一下文档,编译不过大多都是因为使用的groovy脚本但是复制粘贴的README中kts的语法!