Develop for android java issues
-
@Phips04 said in Develop for android java issues:
in the android settings there is no "ndk-bundle"
This is your problem, ndk-bundle is mandatory for Qt!
Extract from the Qt documentation:
Use the sdkmanager command line tool to update the packages list and then install the essential packages:cd <ANDROID_SDK_ROOT>/tools/bin/ ./sdkmanager --update ./sdkmanager --install "platform-tools" "platforms;android-29" "build-tools;29.0.2" "ndk-bundle"
-
@Phips04 This seems to be a well know issue with Android:
- https://stackoverflow.com/questions/60730615/sdkmanager-warning-could-not-create-setting-java-lang-illegalargumentexcepti
- https://medium.com/@s89707192/if-you-have-the-issue-652c7c1ad5d0
You can try:
cd <ANDROID_SDK_ROOT>\tools\bin\ sdkmanager --sdk_root="<ANDROID_SDK_ROOT>" --update sdkmanager --sdk_root="<ANDROID_SDK_ROOT>" --install "platform-tools" "platforms;android-29" "build-tools;29.0.2" "ndk-bundle"
-
@Phips04 said in Develop for android java issues:
It worked this way, the bundle is installed now, but I still can't change the minimal android version
What do you mean with "you can't"? Is the dropdown combobox grayed out or is the list empty?
Do you have restart Qt Creator after updating SDK root? -
@Phips04 said in Develop for android java issues:
I didn't remember that version 8 is the recommended one, installed 15.
Yes, it is no clearly defined ==> https://doc.qt.io/qt-5/android-building.html.
JDK 8, still recommended for best compatibility, but starting with Qt 5.15 JDK 11 could be used.Side note: if you search on internet
java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7
, all matches you will found will clearly detail the issue. The gradle version is not compatible with the selected JDK.
For Qt 5.15, the used gradle version is 5.6.4 (just check in<QT_DIR>/5.15.0/android/src/3rdparty/gradle/gradle/wrapper/gradle-wrapper.properties
) -
Ok, now finally it works. This is my very basic UI for testing
This is the sourcecode:
import QtQuick 2.15
import QtQuick.Window 2.15Window {
Rectangle {
id: rectangle
color: "#09a4cc"
anchors.fill: parentRectangle { id: rectangle1 x: 220 y: 117 width: 200 height: 200 color: "#4facfe" radius: height / 2 gradient: Gradient { GradientStop { position: 0 color: "#4facfe" } GradientStop { position: 1 color: "#00f2fe" } } } }
}
What it shows is simply a white screen.๐
-
@Phips04 I think you have to set property
visible
totrue
of topWindow
:import QtQuick 2.15 import QtQuick.Window 2.15 Window { visible: true // ==> default value is false! Rectangle { id: rectangle color: "#09a4cc" anchors.fill: parent ... } }