Category Archives: Android

Sharing Android phone over TCP with ADB

I was able to share my Android phone over TCP with the following commands:

adb kill-server
start cmd /k adb -a -P 5037 nodaemon server start
(more…)

Building RenderDoc for Android on WSL

I cloned the repository, created build directory, set environment variables and run CMake:

git clone https://github.com/baldurk/renderdoc.git
cd renderdoc/
mkdir build-android
cd build-android
export JAVA_HOME=~/dev/repos/graphicsprofiler/tools/buildtools/jdk
export ANDROID_SDK=~/dev/repos/graphicsprofiler/tools/buildtools/android
export ANDROID_NDK=~/dev/repos/graphicsprofiler/tools/buildtools/android/ndk-bundle/android-ndk-r20b
export PATH=$PATH:$JAVA_HOME/bin
cmake -DBUILD_ANDROID=On -DANDROID_ABI=armeabi-v7a ..
(more…)

Black screen on starting QT Android app

I noticed this about five years ago and hoped that it had passed away, but a few days ago a user reported the following:

(more…)

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

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

Touch target size on Android

Probably QT “Fusion” is not an appropriate style for Android apps, because its buttons height is not enough:

(more…)

Building QT6.4 on Windows for Android with OpenSSL and clang 14

Installed latest NDK:

(more…)

Building QT6.4 on Windows for Android with OpenSSL and clang 12

My mistake was that while building QT6.4 on Windows for Android I tried to set OPENSSL_ROOT_DIR as an environment variable that doesn’t take an effect. Now I set it as an argument:

C:\dev\build\qta
  
set "CMAKE_ROOT=C:\dev\PFiles\cmake-3.24.2-windows-x86_64\bin"
set "NINJA_ROOT=C:\dev\PFiles\ninja-win"
set "PERL_ROOT=C:\dev\PFiles\Strawberry\perl\bin"
set "MINGW_ROOT=C:\dev\PFiles\x86_64-12.2.0-release-win32-seh-rt_v10-rev0\mingw64\bin"
set "PYTHON_ROOT=C:\dev\PFiles\Python35"
set "JDK_ROOT=C:\dev\libs\jdk-19\bin"
          
set PATH=C:\WINDOWS\system32;C:\WINDOWS
set PATH=%CMAKE_ROOT%;%PATH%
set PATH=%NINJA_ROOT%;%PATH%
set PATH=%MINGW_ROOT%;%PATH%
set PATH=%PERL_ROOT%;%PATH%
set PATH=%PYTHON_ROOT%;%PATH%
set PATH=%JDK_ROOT%;%PATH%  

(more…)