Strange exception with Gradle 2.5 but not with 2.6

37 views
Skip to first unread message

Elviss Kustans

unread,
Aug 18, 2015, 8:09:28 AM8/18/15
to RoboVM
Hello!

After some time developing project with LibGDX I tried to compile it to iOS device. It resulted with:
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':ios:launchIOSDevice'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:208)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:186)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:62)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:111)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62)
        at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
        at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:68)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:55)
        at org.gradle.initialization.DefaultGradleLauncher$6.run(DefaultGradleLauncher.java:174)
        at org.gradle.internal.Factories$1.create(Factories.java:22)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:47)
        at org.gradle.initialization.DefaultGradleLauncher.runBuildOperation(DefaultGradleLauncher.java:189)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:171)
        at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:35)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:104)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:97)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
        at org.gradle.initialization.DefaultGradleLauncher.runRootBuildOperation(DefaultGradleLauncher.java:184)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:97)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:93)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:27)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:72)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:44)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:49)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:66)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:71)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: org.gradle.api.GradleException: Failed to launch IOS Device
        at org.robovm.gradle.tasks.IOSDeviceTask.invoke(IOSDeviceTask.java:45)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:226)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:219)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:208)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:585)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:568)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
        ... 69 more
Caused by: java.lang.RuntimeException: java.lang.IncompatibleClassChangeError: Found interface org.objectweb.asm.MethodVisitor, but class was expected
        at org.robovm.compiler.ClassCompiler.compile(ClassCompiler.java:300)
        at org.robovm.compiler.AppCompiler.compile(AppCompiler.java:308)
        at org.robovm.compiler.AppCompiler.compile(AppCompiler.java:391)
        at org.robovm.compiler.AppCompiler.compile(AppCompiler.java:451)
        at org.robovm.compiler.AppCompiler.build(AppCompiler.java:769)
        at org.robovm.gradle.tasks.AbstractRoboVMTask.build(AbstractRoboVMTask.java:104)
        at org.robovm.gradle.tasks.IOSDeviceTask.invoke(IOSDeviceTask.java:40)
        ... 77 more
Caused by: java.lang.IncompatibleClassChangeError: Found interface org.objectweb.asm.MethodVisitor, but class was expected
        at org.robovm.compiler.plugin.annotation.AnnotationImplPlugin.generateConstructor(AnnotationImplPlugin.java:250)
        at org.robovm.compiler.plugin.annotation.AnnotationImplPlugin.beforeClass(AnnotationImplPlugin.java:522)
        at org.robovm.compiler.ClassCompiler.compile(ClassCompiler.java:681)
        at org.robovm.compiler.ClassCompiler.compile(ClassCompiler.java:292)
        ... 83 more

Upgrading Gradle from 2.5 to 2.6 fixed this issue.
I'm wondering if this exception is something related with my project setup (LibGDX 1.6.4 with RoboVM 1.6) or it's bug in RoboVM?
Project uses RoboVM 1.6, Kotlin 0.12.1230, LibGDX 1.6.4

Here are iOS dependencies(no changes between gradle versions):
./gradlew ios:dependencies
Configuration on demand is an incubating feature.
:ios:dependencies

------------------------------------------------------------
Project :ios
------------------------------------------------------------

archives - Configuration for archive artifacts.
No dependencies

compile - Compile classpath for source set 'main'.
+--- project :core
|    +--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.badlogicgames.gdx:gdx-box2d:1.6.4
|    |    \--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.badlogicgames.box2dlights:box2dlights:1.4
|    |    \--- com.badlogicgames.gdx:gdx-box2d:1.6.2 -> 1.6.4 (*)
|    +--- com.badlogicgames.gdx:gdx-freetype:1.6.4
|    |    \--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.kotcrab.vis:vis-ui:0.8.1
|    +--- net.dermetfan.libgdx-utils:libgdx-utils:0.13.0
|    |    \--- com.badlogicgames.gdx:gdx:1.6.3 -> 1.6.4
|    +--- net.dermetfan.libgdx-utils:libgdx-utils-box2d:0.13.0
|    |    +--- com.badlogicgames.gdx:gdx-box2d:1.6.3 -> 1.6.4 (*)
|    |    \--- net.dermetfan.libgdx-utils:libgdx-utils:0.13.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib:0.12.1230
|         \--- org.jetbrains.kotlin:kotlin-runtime:0.12.1230
+--- org.robovm:robovm-rt:1.6.0
+--- org.robovm:robovm-cocoatouch:1.6.0
|    \--- org.robovm:robovm-objc:1.6.0
+--- com.badlogicgames.gdx:gdx-backend-robovm:1.6.4
|    +--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- org.robovm:robovm-cocoatouch:1.5.0 -> 1.6.0 (*)
|    +--- org.robovm:robovm-objc:1.5.0 -> 1.6.0
|    \--- org.robovm:robovm-rt:1.5.0 -> 1.6.0
+--- com.badlogicgames.gdx:gdx-platform:1.6.4
+--- com.badlogicgames.gdx:gdx-box2d-platform:1.6.4
\--- com.badlogicgames.gdx:gdx-freetype-platform:1.6.4

default - Configuration for default artifacts.
+--- project :core
|    +--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.badlogicgames.gdx:gdx-box2d:1.6.4
|    |    \--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.badlogicgames.box2dlights:box2dlights:1.4
|    |    \--- com.badlogicgames.gdx:gdx-box2d:1.6.2 -> 1.6.4 (*)
|    +--- com.badlogicgames.gdx:gdx-freetype:1.6.4
|    |    \--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.kotcrab.vis:vis-ui:0.8.1
|    +--- net.dermetfan.libgdx-utils:libgdx-utils:0.13.0
|    |    \--- com.badlogicgames.gdx:gdx:1.6.3 -> 1.6.4
|    +--- net.dermetfan.libgdx-utils:libgdx-utils-box2d:0.13.0
|    |    +--- com.badlogicgames.gdx:gdx-box2d:1.6.3 -> 1.6.4 (*)
|    |    \--- net.dermetfan.libgdx-utils:libgdx-utils:0.13.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib:0.12.1230
|         \--- org.jetbrains.kotlin:kotlin-runtime:0.12.1230
+--- org.robovm:robovm-rt:1.6.0
+--- org.robovm:robovm-cocoatouch:1.6.0
|    \--- org.robovm:robovm-objc:1.6.0
+--- com.badlogicgames.gdx:gdx-backend-robovm:1.6.4
|    +--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- org.robovm:robovm-cocoatouch:1.5.0 -> 1.6.0 (*)
|    +--- org.robovm:robovm-objc:1.5.0 -> 1.6.0
|    \--- org.robovm:robovm-rt:1.5.0 -> 1.6.0
+--- com.badlogicgames.gdx:gdx-platform:1.6.4
+--- com.badlogicgames.gdx:gdx-box2d-platform:1.6.4
\--- com.badlogicgames.gdx:gdx-freetype-platform:1.6.4

runtime - Runtime classpath for source set 'main'.
+--- project :core
|    +--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.badlogicgames.gdx:gdx-box2d:1.6.4
|    |    \--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.badlogicgames.box2dlights:box2dlights:1.4
|    |    \--- com.badlogicgames.gdx:gdx-box2d:1.6.2 -> 1.6.4 (*)
|    +--- com.badlogicgames.gdx:gdx-freetype:1.6.4
|    |    \--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.kotcrab.vis:vis-ui:0.8.1
|    +--- net.dermetfan.libgdx-utils:libgdx-utils:0.13.0
|    |    \--- com.badlogicgames.gdx:gdx:1.6.3 -> 1.6.4
|    +--- net.dermetfan.libgdx-utils:libgdx-utils-box2d:0.13.0
|    |    +--- com.badlogicgames.gdx:gdx-box2d:1.6.3 -> 1.6.4 (*)
|    |    \--- net.dermetfan.libgdx-utils:libgdx-utils:0.13.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib:0.12.1230
|         \--- org.jetbrains.kotlin:kotlin-runtime:0.12.1230
+--- org.robovm:robovm-rt:1.6.0
+--- org.robovm:robovm-cocoatouch:1.6.0
|    \--- org.robovm:robovm-objc:1.6.0
+--- com.badlogicgames.gdx:gdx-backend-robovm:1.6.4
|    +--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- org.robovm:robovm-cocoatouch:1.5.0 -> 1.6.0 (*)
|    +--- org.robovm:robovm-objc:1.5.0 -> 1.6.0
|    \--- org.robovm:robovm-rt:1.5.0 -> 1.6.0
+--- com.badlogicgames.gdx:gdx-platform:1.6.4
+--- com.badlogicgames.gdx:gdx-box2d-platform:1.6.4
\--- com.badlogicgames.gdx:gdx-freetype-platform:1.6.4

testCompile - Compile classpath for source set 'test'.
+--- project :core
|    +--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.badlogicgames.gdx:gdx-box2d:1.6.4
|    |    \--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.badlogicgames.box2dlights:box2dlights:1.4
|    |    \--- com.badlogicgames.gdx:gdx-box2d:1.6.2 -> 1.6.4 (*)
|    +--- com.badlogicgames.gdx:gdx-freetype:1.6.4
|    |    \--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.kotcrab.vis:vis-ui:0.8.1
|    +--- net.dermetfan.libgdx-utils:libgdx-utils:0.13.0
|    |    \--- com.badlogicgames.gdx:gdx:1.6.3 -> 1.6.4
|    +--- net.dermetfan.libgdx-utils:libgdx-utils-box2d:0.13.0
|    |    +--- com.badlogicgames.gdx:gdx-box2d:1.6.3 -> 1.6.4 (*)
|    |    \--- net.dermetfan.libgdx-utils:libgdx-utils:0.13.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib:0.12.1230
|         \--- org.jetbrains.kotlin:kotlin-runtime:0.12.1230
+--- org.robovm:robovm-rt:1.6.0
+--- org.robovm:robovm-cocoatouch:1.6.0
|    \--- org.robovm:robovm-objc:1.6.0
+--- com.badlogicgames.gdx:gdx-backend-robovm:1.6.4
|    +--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- org.robovm:robovm-cocoatouch:1.5.0 -> 1.6.0 (*)
|    +--- org.robovm:robovm-objc:1.5.0 -> 1.6.0
|    \--- org.robovm:robovm-rt:1.5.0 -> 1.6.0
+--- com.badlogicgames.gdx:gdx-platform:1.6.4
+--- com.badlogicgames.gdx:gdx-box2d-platform:1.6.4
\--- com.badlogicgames.gdx:gdx-freetype-platform:1.6.4

testRuntime - Runtime classpath for source set 'test'.
+--- project :core
|    +--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.badlogicgames.gdx:gdx-box2d:1.6.4
|    |    \--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.badlogicgames.box2dlights:box2dlights:1.4
|    |    \--- com.badlogicgames.gdx:gdx-box2d:1.6.2 -> 1.6.4 (*)
|    +--- com.badlogicgames.gdx:gdx-freetype:1.6.4
|    |    \--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- com.kotcrab.vis:vis-ui:0.8.1
|    +--- net.dermetfan.libgdx-utils:libgdx-utils:0.13.0
|    |    \--- com.badlogicgames.gdx:gdx:1.6.3 -> 1.6.4
|    +--- net.dermetfan.libgdx-utils:libgdx-utils-box2d:0.13.0
|    |    +--- com.badlogicgames.gdx:gdx-box2d:1.6.3 -> 1.6.4 (*)
|    |    \--- net.dermetfan.libgdx-utils:libgdx-utils:0.13.0 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib:0.12.1230
|         \--- org.jetbrains.kotlin:kotlin-runtime:0.12.1230
+--- org.robovm:robovm-rt:1.6.0
+--- org.robovm:robovm-cocoatouch:1.6.0
|    \--- org.robovm:robovm-objc:1.6.0
+--- com.badlogicgames.gdx:gdx-backend-robovm:1.6.4
|    +--- com.badlogicgames.gdx:gdx:1.6.4
|    +--- org.robovm:robovm-cocoatouch:1.5.0 -> 1.6.0 (*)
|    +--- org.robovm:robovm-objc:1.5.0 -> 1.6.0
|    \--- org.robovm:robovm-rt:1.5.0 -> 1.6.0
+--- com.badlogicgames.gdx:gdx-platform:1.6.4
+--- com.badlogicgames.gdx:gdx-box2d-platform:1.6.4
\--- com.badlogicgames.gdx:gdx-freetype-platform:1.6.4

(*) - dependencies omitted (listed previously)

BUILD SUCCESSFUL

Total time: 1.277 secs



Elviss

Mario Zechner

unread,
Aug 18, 2015, 12:29:33 PM8/18/15
to RoboVM
We actually fixed that error in the 1.6 release. ASM was previously shaded into a different package name. With 2.5 they started bundling the standard ASM distribution. I'm unsure why you are seeing this issue tbh. Did you set the RoboVM Gradle plugin version to 1.6 as well?

Elviss Kustans

unread,
Aug 18, 2015, 1:32:19 PM8/18/15
to RoboVM
Plugin version is 1.6:
classpath 'org.robovm:robovm-gradle-plugin:1.6.0'

I tried to compile same code on another mac (from software perspective almost identical) - and it works with 2.5. One possibility could be cache share between versions (Gradle or RoboVM related).

Will try to clear caches for first mac tomorrow and check if it fixes problem.

Elviss Kustans

unread,
Aug 19, 2015, 8:58:01 AM8/19/15
to RoboVM
Other mac have no problems compiling with Gradle 2.5 too now. Not sure what caused exception then...

Mario Zechner

unread,
Aug 19, 2015, 4:55:11 PM8/19/15
to RoboVM
Gradle's cache is sadly unpredictable and causes everyone a lot of grief (just think snapshots...).

Thanks for trying and reporting back!

Reply all
Reply to author
Forward
0 new messages