konsoletyper / teavm

Compiles Java bytecode to JavaScript, WebAssembly and C
https://teavm.org
Apache License 2.0
2.64k stars 264 forks source link

teavm failing to build in idea but builds outside it #321

Open ghost opened 6 years ago

ghost commented 6 years ago

Hi,

I've been trying to build a project to include teavm version 0.6.0-dev-473 on java 8. It builds correctly using version 0.5.1 but fails on any version higher than that. When I build it using the command mvn install It builds correctly, but when I try to build it in Intellij IDEA I get the errors:

`Error:TeaVM: Error: org.teavm.backend.javascript.TeaVMJavaScriptHost.addGeneratorProvider(Ljava/util/function/Function;)V java.lang.NoSuchMethodError: org.teavm.backend.javascript.TeaVMJavaScriptHost.addGeneratorProvider(Ljava/util/function/Function;)V at org.teavm.platform.plugin.PlatformPlugin.install(PlatformPlugin.java:43) at org.teavm.vm.TeaVM.installPlugins(TeaVM.java:583) at org.teavm.tooling.TeaVMTool.generate(TeaVMTool.java:384) at org.teavm.idea.jps.InProcessBuildStrategy.build(InProcessBuildStrategy.java:151) at org.teavm.idea.jps.TeaVMBuild.perform(TeaVMBuild.java:126) at org.teavm.idea.jps.TeaVMBuilder.build(TeaVMBuilder.java:81) at org.teavm.idea.jps.TeaVMBuilder.build(TeaVMBuilder.java:38) at org.jetbrains.jps.incremental.IncProjectBuilder.buildTarget(IncProjectBuilder.java:967) at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:948) at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1009) at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:900) at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:733) at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:385) at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:192) at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:138) at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:295) at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:125) at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:236) at org.jetbrains.jps.service.impl.SharedThreadPoolImpl.lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

Error:TeaVM: Compiler crashed: java.lang.NoSuchMethodError: org.teavm.backend.javascript.TeaVMJavaScriptHost.addGeneratorProvider(Ljava/util/function/Function;)V at org.teavm.platform.plugin.PlatformPlugin.install(PlatformPlugin.java:43) at org.teavm.vm.TeaVM.installPlugins(TeaVM.java:583) at org.teavm.tooling.TeaVMTool.generate(TeaVMTool.java:384) at org.teavm.idea.jps.InProcessBuildStrategy.build(InProcessBuildStrategy.java:151) at org.teavm.idea.jps.TeaVMBuild.perform(TeaVMBuild.java:126) at org.teavm.idea.jps.TeaVMBuilder.build(TeaVMBuilder.java:81) at org.teavm.idea.jps.TeaVMBuilder.build(TeaVMBuilder.java:38) at org.jetbrains.jps.incremental.IncProjectBuilder.buildTarget(IncProjectBuilder.java:967) at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:948) at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1009) at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:900) at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:733) at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:385) at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:192) at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:138) at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:295) at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:125) at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:236) at org.jetbrains.jps.service.impl.SharedThreadPoolImpl.lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)`

I just didn't know if this was something I'm doing wrong or it's something in IDEA.

konsoletyper commented 6 years ago

You should build IDEA plugin yourself:

mvn clean install -Pwith-idea -DskipTests

(plugin will be in tools/idea/plugin/target/)

Alternatively, several options available:

ghost commented 6 years ago

@konsoletyper

Great, I'll just wait until the new build is ready.

If I had a question about trying to implement something in teavm is there a discussion forum or something like it?

konsoletyper commented 6 years ago

Go to project's web site and notice top right corner with several icons.