Unable to compile complex games anymore
fgnm opened this issue · 5 comments
Hi, I tried many things with configurations but I wasn't able to identify the real cause of this issue.. In complex games which have many dependencies compilation doesn't work producing this strange $$__annotations__$$
error
#################################################################
|
| DEPENDENCY_ANALYSIS
|
#################################################################
|||||||||||||||||||||||||||||||||||||java.lang.IllegalArgumentException: Illegal type signature: Lcom/badlogic/gdx/graphics/VertexAttributes$ReadonlyIterable;$$__annotations__$$
at org.teavm.model.ValueType.parse(ValueType.java:313)
at org.teavm.dependency.DependencyAnalyzer.getSuperClassFilter(DependencyAnalyzer.java:854)
at org.teavm.dependency.DependencyNode.getFilter(DependencyNode.java:249)
at org.teavm.dependency.DependencyNode.filter(DependencyNode.java:235)
at org.teavm.dependency.DependencyNode.propagate(DependencyNode.java:64)
at org.teavm.classlib.java.lang.reflect.AnnotationDependencyListener.createAnnotationClass(AnnotationDependencyListener.java:193)
at org.teavm.classlib.java.lang.reflect.AnnotationDependencyListener.lambda$reachGetAnnotations$0(AnnotationDependencyListener.java:164)
at org.teavm.dependency.DependencyAnalyzer.schedulePropagation(DependencyAnalyzer.java:373)
at org.teavm.dependency.DependencyNode.scheduleMultipleTypes(DependencyNode.java:215)
at org.teavm.dependency.Transition.mergeDomains(Transition.java:69)
at org.teavm.dependency.Transition.propagate(Transition.java:61)
at org.teavm.dependency.Transition.consume(Transition.java:151)
at org.teavm.dependency.DependencyAnalyzer.schedulePropagation(DependencyAnalyzer.java:347)
at org.teavm.dependency.DependencyNode.scheduleMultipleTypes(DependencyNode.java:189)
at org.teavm.dependency.Transition.mergeDomains(Transition.java:69)
at org.teavm.dependency.Transition.propagate(Transition.java:61)
at org.teavm.dependency.Transition.consume(Transition.java:151)
at org.teavm.dependency.DependencyAnalyzer.schedulePropagation(DependencyAnalyzer.java:347)
at org.teavm.dependency.DependencyNode.scheduleMultipleTypes(DependencyNode.java:189)
at org.teavm.dependency.Transition.mergeDomains(Transition.java:69)
at org.teavm.dependency.Transition.propagate(Transition.java:61)
at org.teavm.dependency.Transition.consume(Transition.java:151)
at org.teavm.dependency.DependencyAnalyzer.processNodeToNodeTransitionQueue(DependencyAnalyzer.java:676)
at org.teavm.dependency.DependencyAnalyzer.processQueue(DependencyAnalyzer.java:641)
at org.teavm.dependency.DependencyAnalyzer.processDependencies(DependencyAnalyzer.java:683)
at org.teavm.vm.TeaVM.build(TeaVM.java:378)
at org.teavm.tooling.TeaVMTool.generate(TeaVMTool.java:462)
at com.github.xpenatan.gdx.backends.teavm.TeaBuilder.build(TeaBuilder.java:112)
at games.rednblack.hyperrunner.teavm.Build.main(Build.java:31)
I'm really lost because I'm sure that the same project in the past was working and compiling with TeaVM.. Test repo can be found here to reproduce the issue: https://github.com/rednblackgames/tutorial-space-platform
Thanks
Yeah, very hard to know what makes annotations error. The only way to try to understand I think is to make a very simple test and reproduce it.
Maybe it's the Field generator annotation.
Hey @konsoletyper, can help with this error?
I managed to get a very simple test and for some reason when I add artemis World object the build fails with $$annotations$$ error. Every build show a different class with this annotation error.
Adding a breakpoint in AnnotationDependencyListener#createAnnotationClass, it also create a new classholder for Object class.
to build you can use this gradle cmd: "./gradlew buildExampleCoreArtemisTest". It will try to build the ArtemisTest class.
Artemis is a popular entity component system used by many java games.
@fgnm You were using artemis when build was working?
Yes, the code was exactly the same when I tried TeaVM for the first time. If you remember I also PR some emu classes to make Artemis working #43
Fixed thanks a lot! ;)