Unable to debug Android App (Windows + Qt Creator 12 + LLDB)
-
@JoeCFD yes as of now, we've deployed like 3 VMs already , we're diving into crazy things such as updating maveen, gradle, checking any binary dependancies, diving deep into the internals of GDB..... it does NOT work.
take a look at what official Android site says about debugging with GDB
-
Let me emphasize - all was fine with QT 5.15.12 and OLD Creator 10 community edition over GDB.
-
All the time while playing around with settings, while editing and saving QT Creator 12 would deploy new kits..... forgetting some settings... like the yellow triangle next to each is about missing compiler settings.. and of course.. it was set
-
@CodesInChaoss Clone of Android Qt 5.15.16 Clang Multi-Abi
These are my settings.
I expected this upgrade to QT 5.15.16 and QT Creator 12 to take an hour or two, not many days without results. Targeting Android API 31
The pro file:```
TEMPLATE = app
CONFIG += c++17
app = tokenapp
QMAKE_BUNDLE=tokenapp
QMAKE_PROVISIONING_PROFILE="tokenTestProfile"
QMAKE_TARGET_BUNDLE_PREFIX = org.gridnetANDROID_VERSION_NAME = "6"
ANDROID_VERSION_CODE = 6
DEFINES += IS_QT_BUILD
android {
ANDROID_MIN_SDK_VERSION = 26
ANDROID_TARGET_SDK_VERSION = 31
}QMAKE_CXXFLAGS += -std=c++17
QMAKE_LFLAGS += -std=c++17
CONFIG += qzxing_multimedia
enable_decoder_1d_barcodes
enable_decoder_qr_code
enable_decoder_data_matrix
enable_decoder_aztec
enable_decoder_pdf17CONFIG(debug, debug|release) {
CONFIG+=qml_debug
} else {
DEFINES += QT_NO_DEBUG
DEFINES += QT_NO_DEBUG_OUTPUT}
QT +=core gui
QT += multimedia multimediawidgets
QT += quickwidgets
QT += gui-private
QT += network
#QTPLUGIN += qtaudio_coreaudio
HEADERS += conversation.h
DataConcatenator.h
EEndPoint.h
GridScriptCompiler.h
IManager.h
InstructionSet.h
KeyEater.h
NetMsg.h
NetTask.h
NetworkDevice.h
OperationResult.h
Receipt.h
SafeArea.h
ScriptEngine.h
SensorState.h
SessionDescription.h
ThreadPool.h
TokenPool.h
TokenPoolBank.h
TransmissionToken.h
TrieLeafNode.h
TrieNode.h
UDT/api.h
UDT/buffer.h
UDT/cache.h
UDT/mD5U.h
UDT/ccc.h
UDT/channel.h
UDT/common.h
UDT/core.h
UDT/epoll.h
UDT/list.h
UDT/packet.h
UDT/queue.h
UDT/udt.h
UDT/window.h
VMMetaGenerator.h
VMMetaEntry.h
VMMetaGenerator.h
VMMetaParser.h
VMMetaSection.h
VMProcessor.h
application.h
base64/include/chromiumbase64.h
base64/include/fastavx512bwbase64.h
base64/include/fastavxbase64.h
base64/include/klompavxbase64.h
base64/include/linuxbase64.h
base64/include/quicktimebase64.h
base64/include/scalarbase64.h
botan_all.h
cconfirmationbox.h
cglobalsecsettings.h
cidentitybox.h
cnetworkfactory.h
conversationState.h
cqrintentresponse.h
hexi.h
hexiPhrase.h
miniaudio.h
native.h
pkcs11.h
pkcs11f.h
pkcs11t.h
tests.h
transaction.h
transferbox.h
transferboxcppSOURCES += main.cpp
EEndPoint.cpp
GridScriptCompiler.cpp
KeyEater.cpp
NetMsg.cpp
NetTask.cpp
NetworkDevice.cpp
OperationResult.cpp
Receipt.cpp
SensorState.cpp
SessionDescription.cpp
TokenPool.cpp
TokenPoolBank.cpp
TransmissionToken.cpp
TrieLeafNode.cpp
TrieNode.cpp
UDT/api.cpp
UDT/buffer.cpp
UDT/cache.cpp
UDT/ccc.cpp
UDT/channel.cpp
UDT/common.cpp
UDT/core.cpp
UDT/epoll.cpp
UDT/list.cpp
UDT/mD5U.cpp
UDT/packet.cpp
UDT/queue.cpp
UDT/window.cpp
VMMetaEntry.cpp
VMMetaGenerator.cpp
VMMetaParser.cpp
VMMetaSection.cpp
VMProcessor.cpp
application.cpp
cconfirmationbox.cpp
cglobalsecsettings.cpp
cidentitybox.cpp
cnetworkfactory.cpp
conversation.cpp
conversationState.cpp
cqrintentresponse.cpp
hexi.cpp
hexiPhrase.cpp
native.cpp
scriptengine.cpp
tests.cpp
transaction.cpp
transferbox.cpp#the following source files are platform-specific
android {
SOURCES += miniaudio.c}
else:ios {
SOURCES += miniaudio.m}
RESOURCES += qml.qrc
Additional import path used to resolve QML modules in Qt Creator's code model
//QML2_IMPORT_PATH += xzing/src/
include(./xzing/src/QZXing-components.pri)Default rules for deployment.
include(deployment.pri)
android {
LIBS += -lOpenSLES QT += androidextras QT += widgets QT += quickcontrols2 DISTFILES += \ android/gradle/wrapper/gradle-wrapper.jar \ android/gradlew \ android/res/values/libs.xml \ android/build.gradle \ android/gradle/wrapper/gradle-wrapper.properties \ android/gradlew.bat \ android/gradle/wrapper/gradle-wrapper.jar \ android/gradlew \ android/res/values/libs.xml \ android/res/mipmap-anydpi-v26/icon.xml \ android/res/mipmap-anydpi-v26/icon_round.xml \ android/res/mipmap-xxxhdpi/icon.png \ android/res/mipmap-xxxhdpi/launcher_foreground.png \ android/build.gradle \ android/gradle/wrapper/gradle-wrapper.properties \ android/gradlew.bat
LIBS += -L$$PWD/jniLibs/$$QT_ARCH/ -lbotan-2
ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
PRE_TARGETDEPS += $$PWD/jniLibs/$$QT_ARCH/libbotan-2.a}
else:ios {
QMAKE_INFO_PLIST=Info.plist
LIBS += $$PWD/jniLibs/$$QT_ARCH/libbotan-2.a
LIBS += -framework CoreFoundation
LIBS += -framework CoreAudio}
ios {
QMAKE_ASSET_CATALOGS = $$PWD/iOS/Images.xcassets
QMAKE_ASSET_CATALOGS_APP_ICON = "AppIcon"
deployment.files = $$files($$PWD/iOS/LaunchImages/*.gif)
deployment.path =QMAKE_BUNDLE_DATA += deployment app_launch_screen.files = $$files($$PWD/iOS/MyLaunchScreen.storyboard) QMAKE_BUNDLE_DATA += app_launch_screen
}
Q_ENABLE_BITCODE.name = ENABLE_BITCODE
Q_ENABLE_BITCODE.value = NO
QMAKE_MAC_XCODE_SETTINGS += Q_ENABLE_BITCODEDISTFILES +=
../Whitepapers/SMART GRID/logoBoxself.png
android/AndroidManifest.xml
android/AndroidManifest_copy.xml
android/gradlew.bat
android/gradlew.bat
images/abort.png
images/animatedqr.gif
images/confirm.png
images/confirmed.png
images/eyes.gif
images/logoboxself.png
images/overlay.gif
images/scannedok.png
images/scannedwrong.png
images/settings.png
images/ergLimit.png
images/tx.png
images/ergPrice.png
images/icons.png
images/Recipient.png
voices/welcome.mp3
jniLibs/$$QT_ARCH/botan
jniLibs/$$QT_ARCH/libbotan-2.a
jniLibs/$$QT_ARCH/libbotan-2.soOTHER_FILES += iOS/*.storyboard
INCLUDEPATH += $$PWD/jniLibs/$$QT_ARCH
DEPENDPATH += $$PWD/jniLibs/$$QT_ARCHANDROID_EXTRA_LIBS += $$PWD/jniLibs/$$QT_ARCH/libbotan-2.so
Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += targetANDROID_ABIS += arm64-v8a
armeabi-v7a -
and the build.gradle file:```
buildscript {
repositories {
google()
mavenCentral() // For Kotlin and many other dependencies
}dependencies {
classpath 'com.android.tools.build:gradle:7.0.4'
}
}repositories {
google()
jcenter()
}apply plugin: 'com.android.application'
dependencies {
implementation fileTree(dir: 'libs', include: ['.jar', '.aar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
//compile 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-v4:24.+'
}android {
/*******************************************************
* The following variables:
* - androidBuildToolsVersion,
* - androidCompileSdkVersion
* - qt5AndroidDir - holds the path to qt android files
* needed to build any Qt application
* on Android.
*
* are defined in gradle.properties file. This file is
* updated by QtCreator and androiddeployqt tools.
* Changing them manually might break the compilation!
*******************************************************/compileSdkVersion 31 buildToolsVersion '28.0.3' ndkVersion '25.1.8937393' sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java'] aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl'] res.srcDirs = [qt5AndroidDir + '/res', 'res'] resources.srcDirs = ['resources'] renderscript.srcDirs = ['src'] assets.srcDirs = ['assets'] jniLibs.srcDirs = ['libs'] } } tasks.withType(JavaCompile) { options.incremental = true } lintOptions { abortOnError false } // Do not compress Qt binary resources file aaptOptions { noCompress 'rcc' } defaultConfig { resConfig "en" minSdkVersion = qtMinSdkVersion targetSdkVersion = qtTargetSdkVersion }
}
-
Now we became paranoid to get things running
so we keep going through points available at https://wiki.qt.io/Qt_5.15_Tools_and_Versions
line by line... so we uninstall JAVA SE 17 compatible stuff in favor of JAVA SE 11 (even though in variety of places it says newer versions of JAVA are all good)
but guess what?
After the JDK is unistalled.... new versions of JDK chosen.... QT CReator 12... it would never recover - look above........
NEVER. -
after one attempts to select NDK's loation by hand (..) wonderful huh?
-
-
Guess time to un install Creator 12... the COMMERCIAL THING.. all over again.. doing this like 8th time this week maybe more
-
Am I to receive any kind of 'thanks' for these reports from Qt? A free Tech Support just maybe?
-
@CodesInChaoss Here we go AGAIN
-
GOOD FOLKS!
QT Creator 12 (the paid for version) does not continue to surprise (..) along with its documentation.
So that's the result of QT Creator doing autonomous Android SDK setup under the Java SE 11 as advised by official docs.
RE-install AGAIN?
-
Since we really really WANT to get this up and running, we would download and OFFICIAL 11.0.12 JE as advises by docs (..) not the opensource thing...and see
-
Windows 11 version exactly as the one found in docs 22H... now it MUST work, right?
-
Do I dare?
-
-
what can I do
-
so since Android SDK with API 31 EMPLOYS Java class version 61 objects for its components this IMPLIES a requirements for JDK version 17.
QT ... kindly update your docs?
-
that's WRONG... Android API 31 components (SDK) REQUIRES (seemingly JAVA SE version 17) since its components use object version 61 NOT 55.
-
let's keep trying... shall we...