Category Archives: Operating Systems

Yandex Mobile Ads actively crashes on Android

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…)

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)
(more…)

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.");
    }
}
(more…)

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
(more…)

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"
    }
  },
(more…)

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
}
(more…)

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 .
(more…)

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