Plugged an external HDD:
(more…)Category Archives: Operating Systems
Uploading debug symbols to Google Play Store
Did a quick google search and found this
- Playstore error: App Bundle contains native code, and you’ve not uploaded debug symbols
- Android native crash debug symbols
- How to add debug symbols to build.gradle (
flutter build appbundle
it should finish after a while with an appbundle that is twice the size) - ndk-stack tool allows you to symbolize stack traces from
adb logcat
or a tombstone in/data/tombstones/
- QTBUG-81978 Final apk contains unstripped libraries
- How to strip out the DWARF debugging information in a shared library (.so)
- Fortunately you don’t actually need to keep the symbols in the app
I have the following components installed:
- NDK (Side by side)
- CMake
- Android SDK Command-line Tools (latest)
An attempt to build static QT for Android
qtbase\cmake\QtPlatformAndroid.cmake
contains this:
# Ensure we are using the shared version of libc++
if(NOT ANDROID_STL STREQUAL c++_shared)
message(FATAL_ERROR "The Qt libraries on Android only supports the shared library configuration of stl. Please use -DANDROID_STL=\"c++_shared\" as configuration argument.")
endif()
and looks like -static-runtime
works only for Windows.
I added -c++std c++20 -static -no-openssl
to the configuration and removed -separate-debug-info
:
Reducing the size of QT Android libraries
Tried to reduce the size of the QT Android libs by separating debug info with -separate-debug-info
option and skipping the modules I do not use:
set "CMAKE_ROOT=E:\PFiles\cmake-3.21.3-windows-x86_64\bin"
set "NINJA_ROOT=E:\PFiles\ninja-win"
set "JDK_ROOT=C:\Program Files\Java\jdk1.8.0_301\bin"
set "MINGW_ROOT=E:\PFiles\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin"
set "PERL_ROOT=E:\PFiles\Strawberry\perl\bin"
set PATH=C:\WINDOWS\system32;C:\WINDOWS
set PATH=%CMAKE_ROOT%;%PATH%
set PATH=%NINJA_ROOT%;%PATH%
set PATH=%JDK_ROOT%;%PATH%
set PATH=%MINGW_ROOT%;%PATH%
set PATH=%PERL_ROOT%;%PATH%
set PATH=E:\PFiles\Python35;%PATH%
rem Check if the tools are in PATH
where gcc
where mingw32-make.exe
where perl.exe
where javac.exe
where python.exe
where cmake.exe
where ninja.exe
set "ANDROID_SDK_ROOT=C:\Users\D-Ef\AppData\Local\Android\Sdk"
set "ANDROID_NDK_PATH=C:\Users\D-Ef\AppData\Local\Android\Sdk\ndk\22.1.7171670"
set "ANDROID_BUILD_TOOLS_REVISION=31.0.0"
set MY_INSTALL_PATH=E:\Qt\Qt6.2.2\android
set QT_HOST_PATH=E:\Qt\Qt6.2.2\windows
configure.bat -platform win32-msvc -xplatform android-clang -prefix %MY_INSTALL_PATH% -qt-host-path %QT_HOST_PATH% ^
-android-sdk %ANDROID_SDK_ROOT% -android-ndk %ANDROID_NDK_PATH% -android-ndk-platform android-23 -android-abis x86_64 ^
-DQT_NO_EXCEPTIONS=1 -release -force-debug-info -separate-debug-info -opensource -confirm-license ^
-skip qt3d -skip qt5compat -skip qtactiveqt -skip qtcharts -skip qtcoap -skip qtconnectivity ^
-skip qtdatavis3d -skip qtdoc -skip qtlottie -skip qtmqtt -skip qtnetworkauth -skip qtopcua ^
-skip qtserialport -skip qtpositioning -skip qtquicktimeline -skip qtquick3d -skip qtremoteobjects ^
-skip qtscxml -skip qtsensors -skip qtserialbus -skip qtvirtualkeyboard -skip qtwayland -skip qtwebsockets ^
-skip qtwebchannel -skip qtwebengine -skip qtwebview ^
1> E:\temp\config-log12.txt 2>&1
Configuring Android NDK version in QT Creator
When I uninstalled old NDK versions including 21.3.6528147
, QT Creator displayed this:
“Server certificate verification failed” error with command line Git client
Some guy described the same situation about 10 years ago on stackoverflow.com and there was another discussion about 7 years ago.
First I did:
GIT_CURL_VERBOSE=1 git clone https://git.developernote.com/examples.git
Cloning into 'examples'...
* Couldn't find host git.developernote.com in the .netrc file; using defaults
* Trying 139.162.243.103...
* TCP_NODELAY set
* Connected to git.developernote.com (139.162.243.103) port 443 (#0)
* found 129 certificates in /etc/ssl/certs/ca-certificates.crt
* found 387 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_256_GCM_SHA384
* server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
* stopped the pause stream!
* Closing connection 0
fatal: unable to access 'https://git.developernote.com/examples.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
How to backup entire disk on MacOS
Open Disk Utility, select View->Show All Devices, select the disk and then Image from … :
To restore the disk from backup create a boot USB flash, boot from it and use Recovery option.
Building QT 6.2 for Android on Windows
First I built QT 6.2 for Windows then I installed JDK8, CMake 3.21.3 and configured QT as follows:
set "CMAKE_ROOT=E:\PFiles\cmake-3.21.3-windows-x86_64\bin"
set "NINJA_ROOT=E:\PFiles\ninja-win"
set "JDK_ROOT=C:\Program Files\Java\jdk1.8.0_301\bin"
set "MINGW_ROOT=E:\PFiles\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin"
set "PERL_ROOT=E:\PFiles\Strawberry\perl\bin"
set PATH=C:\WINDOWS\system32;C:\WINDOWS
set PATH=%CMAKE_ROOT%;%PATH%
set PATH=%NINJA_ROOT%;%PATH%
set PATH=%JDK_ROOT%;%PATH%
set PATH=%MINGW_ROOT%;%PATH%
set PATH=%PERL_ROOT%;%PATH%
set PATH=E:\PFiles\Python35;%PATH%
rem Check if the tools are in PATH
where gcc
where mingw32-make.exe
where perl.exe
where javac.exe
where python.exe
where cmake.exe
where ninja.exe
set "ANDROID_SDK_ROOT=C:\Users\D-Ef\AppData\Local\Android\Sdk"
set "ANDROID_NDK_PATH=C:\Users\D-Ef\AppData\Local\Android\Sdk\ndk\21.3.6528147"
rem See qtbase\mkspecs\android-clang\qmake.conf
set "ANDROID_NDK_PLATFORM=android-23"
rem see %ANDROID_SDK_ROOT%\build-tools folder
set "ANDROID_BUILD_TOOLS_REVISION=29.0.2"
set MY_INSTALL_PATH=E:\Qt\Qt6.2\android
set QT_HOST_PATH=E:\Qt\Qt6.2\windows
configure.bat -platform android-clang -prefix %MY_INSTALL_PATH% -android-sdk %ANDROID_SDK_ROOT% -android-ndk %ANDROID_NDK_PATH% -qt-host-path %QT_HOST_PATH% -android-abis x86_64 ^
-DQT_NO_EXCEPTIONS=1 -release -force-debug-info -opensource -confirm-license
Building QT 6.2 for Windows with MSVC2019
I cloned QT repository:
git clone --recursive https://code.qt.io/qt/qt5.git --branch v6.2.0
cd qt5
Looks like the command below is not required:
./init-repository --module-subset=all
because it prints:
Will not reinitialize already initialized repository (use -f to force)!