ByteX icon indicating copy to clipboard operation
ByteX copied to clipboard

> java.lang.RuntimeException: proguard.ParseException: Expecting opening '(' or separator ';' before 'return' in line 5 of file '/home/root/.gradle/caches/transforms-2/files-2.1/bed2b0a080851d61ffed8106fe58b3c4/rules/lib/META-INF/com.android.tools/r8-from-1.6.0/coroutines.pro'

Open Xinmeng322 opened this issue 4 years ago • 5 comments

FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ':app:transformClassesWithByteXForNormalRelease'.

java.lang.RuntimeException: proguard.ParseException: Expecting opening '(' or separator ';' before 'return' in line 5 of file '/home/root/.gradle/caches/transforms-2/files-2.1/bed2b0a080851d61ffed8106fe58b3c4/rules/lib/META-INF/com.android.tools/r8-from-1.6.0/coroutines.pro'

  • Try: Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithByteXForNormalRelease'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:200) at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:198) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:179) at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:372) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:359) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:352) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:338) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) Caused by: java.lang.RuntimeException: java.lang.RuntimeException: proguard.ParseException: Expecting opening '(' or separator ';' before 'return' in line 5 of file '/home/root/.gradle/caches/transforms-2/files-2.1/bed2b0a080851d61ffed8106fe58b3c4/rules/lib/META-INF/com.android.tools/r8-from-1.6.0/coroutines.pro'

Xinmeng322 avatar Jan 12 '22 09:01 Xinmeng322

import getter-setter-inline-plugin 会编译不过, 有大佬遇到过么?指导下。

Xinmeng322 avatar Jan 12 '22 09:01 Xinmeng322

你这里是不是将插件的依赖放到到implementation中了?插件依赖确保是放在buildScript的classpath中

yangzhiqian avatar Jan 24 '22 03:01 yangzhiqian

你这里是不是将插件的依赖放到到implementation中了?插件依赖确保是放在buildScript的classpath中

没有,放到项目根目录的build.gradle文件里的buildscript 里面的dependencies 里面用classpath引得

Xinmeng322 avatar Jan 24 '22 03:01 Xinmeng322

/home/root/.gradle/caches/transforms-2/files-2.1/bed2b0a080851d61ffed8106fe58b3c4/rules/lib/META-INF/com.android.tools/r8-from-1.6.0/coroutines.pro 确认一下这个文件是否有问题,bytex使用proguard的库解析混淆配置。

yangzhiqian avatar Jan 24 '22 03:01 yangzhiqian

这里如果使用 proguard 去解析,有些配置会解析失败,比如:

-keepclassmembers class * { * this$0; }

这种,使用 proguard 解析就失败,源代码流程如下:

image

这里可能针对 R8 要换方式实现,我看 R8 是用的 ProguardConfigurationParser 去解析的,应该是要对 R8 做个适配。

davezhou2022 avatar Nov 14 '22 13:11 davezhou2022

这里更新下 progurad 的版本可以解决,我目前用 7.3.0 的最新版本,不会有这个报错了。

davezhou2022 avatar Dec 07 '22 08:12 davezhou2022