PDA

View Full Version : QT Creator 4.12.4 and Java Lambda issue



sevketk
24th July 2020, 16:20
I already have android studio installed on my computer

13506

And its configure JDK , Android Sdk

13507

so far so good. if I set same variable to QT creator

13508

13509

when i run my project, there is no problem. so far so good

but whenever I add a lambda expression to my java file, I get an error.

13510


> Task :compileDebugJavaWithJavac FAILED
E:\kutuphane\belgelerim\QT Projects\JniTest2\android-build\src\org\qtproject\example\JniTest2\TerminalF ragment.java:336: error: method references are not supported in -source 1.7
rtsBtn.setOnClickListener(this::toggle);
^
(use -source 8 or higher to enable method references)
1 error

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

however, the project with the same lambda works in android studio. qt and A.studio have same jdk . and insist that the qt jdk version is less than 8 ???
how can this be. where am i making a mistake.

>
>
>

d_stranz
24th July 2020, 16:41
(use -source 8 or higher to enable method references)

Seems to me this is telling you exactly what to do to fix the problem. There is a preprocessor definition in Android Studio's compile options that isn't defined in Qt Creator's options, so you need to add it.

sevketk
24th July 2020, 18:09
Seems to me this is telling you exactly what to do to fix the problem. There is a preprocessor definition in Android Studio's compile options that isn't defined in Qt Creator's options, so you need to add it.

Ok ,i saw it already.
I searched this word everywhere, google youtube etc. where should i define?

d_stranz
24th July 2020, 21:03
Maybe this link (https://saker.build/blog/javac_source_target_parameters/index.html) will help.

It appears to be a command line option to the javac compiler. Look at how Android Studio calls the javac compiler, and copy the same to Qt Creator's javac command line. I don't know exactly how you do this; I have never configured a kit to use javac.

sevketk
26th July 2020, 03:53
I found the solution to the problem. Let me write it here and benefit other friends. all you have to do is insert these two lines into the build.gradle file, inside the android fancy brackets. that's all.


android {
.....
.....
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
....
}