There was an ANR in my Android app, but a few days later Yandex Mobile Ads started to actively crash messing up my statistics:
(more…)Category Archives: Operating Systems
ANR in Yandex Mobile Ads on Android
I got ANR in my Android app on HUAWEI HWJMM (honor 6C Pro) Android 7.0 (SDK 24) with the following stack trace:
at J.N.M1Y_XVCN (Native method)
at org.chromium.content.browser.BrowserStartupControllerImpl.b (chromium-Monochrome.aab-stable-<US_SOCIAL_SECURITY_NUMBER>:10)
at org.chromium.content.browser.BrowserStartupControllerImpl.i (chromium-Monochrome.aab-stable-<US_SOCIAL_SECURITY_NUMBER>:62)
at hp.run (chromium-Monochrome.aab-stable-<US_SOCIAL_SECURITY_NUMBER>:59)
at org.chromium.base.ThreadUtils.f (chromium-Monochrome.aab-stable-<US_SOCIAL_SECURITY_NUMBER>:7)
at org.chromium.android_webview.AwBrowserProcess.l (chromium-Monochrome.aab-stable-<US_SOCIAL_SECURITY_NUMBER>:23)
at com.android.webview.chromium.M.e (chromium-Monochrome.aab-stable-<US_SOCIAL_SECURITY_NUMBER>:146)
at com.android.webview.chromium.M.b (chromium-Monochrome.aab-stable-<US_SOCIAL_SECURITY_NUMBER>:172)
at com.android.webview.chromium.WebViewChromiumFactoryProvider.getWebViewDatabase (chromium-Monochrome.aab-stable-<US_SOCIAL_SECURITY_NUMBER>:7)
at android.webkit.WebViewDatabase.getInstance (WebViewDatabase.java:38)
at com.yandex.mobile.ads.impl.e6.a (SourceFile:7)
at com.yandex.mobile.ads.impl.m60.a (SourceFile:4)
at com.yandex.mobile.ads.impl.dd.t (SourceFile:1)
at com.yandex.mobile.ads.impl.dd$a.run (SourceFile:3)
at android.os.Handler.handleCallback (Handler.java:846)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:205)
at android.app.ActivityThread.main (ActivityThread.java:6783)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1225)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1086)
How to get a history of running processes
Follow the steps from superuser.com:
(more…)Google Play Console displays std::exception message
My Android game crashed on a user’s device at the highlighted line:
GameMovement::GameMovement(GameField& field, CellCoord from, CellCoord to) :
m_field(field),
pBall(m_field.GetCell(from))
{
GameGraph graph(&m_field, from, to);
m_path.reserve(m_field.GetColumnCount() + m_field.GetRowCount());
if (!graph.FindPath(m_path))
{
throw std::runtime_error("Path not found.");
}
if (m_path.size() < 2)
{
throw std::runtime_error("Wrong path.");
}
}
Building Vulkan samples for Android
Cloned the repository:
git clone https://github.com/SaschaWillems/Vulkan.git
git submodule init
git submodule update
Updated assets:
python.exe download_assets.py
Building a C++ project with MinGW using Visual Studio Code
In CMake Tools extension settings I specified my CMake path:
and built my project with MSVC 2022 first and then switched to MinGW.
Building a project with MSVC 2022
On my machine with installed MSVC 2022 it automatically generated configuration file %LocalAppData%/CMakeTools/cmake-tools-kits.json
:
[
{
"name": "Visual Studio Professional 2022 Release - amd64",
"visualStudio": "04bbaecf",
"visualStudioArchitecture": "x64",
"preferredGenerator": {
"name": "Visual Studio 17 2022",
"platform": "x64",
"toolset": "host=x64"
}
},
{
"name": "Visual Studio Professional 2022 Release - amd64_x86",
"visualStudio": "04bbaecf",
"visualStudioArchitecture": "x64",
"preferredGenerator": {
"name": "Visual Studio 17 2022",
"platform": "win32",
"toolset": "host=x64"
}
},
Compiling a C++ source file in Visual Studio Code with MinGW
I followed this instruction and configured C/C++ extension as follows:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.19041.0",
"compilerPath": "D:\\dev\\tools\\x86_64-12.2.0-release-win32-seh-rt_v10-rev0\\mingw64\\bin\\g++.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
Building QT6.4.2 for MacOS and iOS
Build QT for MacOS separately in Debug and Release configuration:
tar xf qt-everywhere-src-6.4.2.tar.xz
cd ~/build/qt
export MY_QT_SRC_DIR=~/repos/qt-everywhere-src-6.4.2
export MY_MODE=release
#export MY_MODE=debug
export MY_INSTALL_PATH=~/libs/QT6.4/${MY_MODE}/MacOs
${MY_QT_SRC_DIR}/configure -prefix $MY_INSTALL_PATH -c++std c++20 -opensource -confirm-license \
-static -static-runtime -${MY_MODE} -force-debug-info \
-no-openssl -securetransport -DQT_NO_EXCEPTIONS=1 \
-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 qtwebchannel -skip qtwebengine -skip qtwebview -skip qtquick3dphysics -skip qtspeech -skip qtlocation \
-skip qthttpserver \
-- -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" \
&& cmake --build . --parallel \
&& cmake --install .
Touch target size on Android
Probably QT “Fusion” is not an appropriate style for Android apps, because its buttons height is not enough:
(more…)Creating Windows Application Icon on Ubuntu 22.04
Install magick
tool:
sudo apt update
sudo apt install imagemagick
Copy *.png
files to a folder, for example:
win16x16.png
win32x32.png
win48x48.png
win64x64.png
and run the following command:
convert *.png winapp.ico