mavlink / qgc-dev-guide

QGroundControl Developers Guide
https://dev.qgroundcontrol.com/en/
Other
42 stars 51 forks source link

Added for Android Build, use Java version 11 #149

Closed RishabhBhat2021 closed 2 years ago

RishabhBhat2021 commented 2 years ago

While building the Android App with Java JDK version selected other than 11, the build would fail and gives java sdk error Android build only finishes when java version 11 is selected in the Qt Creator Settings

It would be a great idea to have that info in the documentation, i.e. "to use java version 11 when building for android"

hamishwillee commented 2 years ago

Thanks @RishabhBhat2021 - can you show me some supporting evidence, or @DonLakeFlyer is this a known issue?

(@RishabhBhat2021 - FYI just doing due diligence so I don't have to build and test this myself)

RishabhBhat2021 commented 2 years ago

@hamishwillee there is indeed an issue on the mavlink/qgroundcontrol github, link: https://github.com/mavlink/qgroundcontrol/issues/10028 There they discuss that using JDK 8 throws an error but 11 doesn't, which is what i'm also claiming (i.e. only works with JDK 11)

This is the error that i'm getting. In the Issue they have shown the full log, and the error is same as mine java.lang.AssertionError: annotationType(): unrecognized Attribute name MODULE (class com.sun.tools.javac.util.UnsharedNameTable$NameImpl)

An exception has occurred in the compiler (1.8.0_312). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program and the following diagnostic in your report. Thank you. 
12 actionable tasks: 1 executed, 11 up-to-date 
java.lang.AssertionError: annotationType(): unrecognized Attribute name MODULE (class com.sun.tools.javac.util.UnsharedNameTable$NameImpl)  
at com.sun.tools.javac.util.Assert.error(Assert.java:133)   
at com.sun.tools.javac.code.TypeAnnotations.annotationType(TypeAnnotations.java:231)    
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.separateAnnotationsKinds(TypeAnnotations.java:294)  
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitMethodDef(TypeAnnotations.java:1066)   
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:778)     
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)   
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:275)  
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57)   
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitClassDef(TypeAnnotations.java:1042)    
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:693)  
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)   
at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:275)  
at com.sun.tools.javac.code.TypeAnnotations$1.run(TypeAnnotations.java:127)     
at com.sun.tools.javac.comp.Annotate.flush(Annotate.java:152)   
at com.sun.tools.javac.comp.Annotate.enterDone(Annotate.java:129)   
at com.sun.tools.javac.comp.Enter.complete(Enter.java:512)  
at com.sun.tools.javac.comp.Enter.main(Enter.java:471)  
at com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:982)  
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:857)     
at [com.sun.tools.javac.main.Main.compile(Main.java](http://com.sun.tools.javac.main.main.compile%28main.java/)
....

(Sorry, i should have been more verbose with the issue when raising the PR, i hope this helps)

hamishwillee commented 2 years ago

Thanks! I'm trying to verify this - not because I don't trust you, but because all these instructions seem quite out of date. You'll probably see my posts on slack that docker and vagrant builds don't work either :-(

RishabhBhat2021 commented 2 years ago

Got it BTW, I tested my setup on Windows 11.

hamishwillee commented 2 years ago

Thanks. I'll try that next. Just want one thing to work :-(