Category Archives: Operating Systems

My Android Phone requires release apps to be signed

When I try to install an unsigned release app

adb install android-build-release-unsigned.apk

I get

Performing Streamed Install
adb: failed to install android-build-release-unsigned.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl827870317.tmp/base.apk: Attempt to get length of null array]
(more…)

Viewing image metadata on Ubuntu 22.04

sudo apt install imagemagick
identify -verbose my-image.jpg
(more…)

Converting MP4 to GIF with ffmpeg

I was able to convert MP4 to GIF with ffmpeg with the following commands on Ubuntu 22.04:

ffmpeg \
  -i iphone884.mp4 \
  -r 15 \
  -vf "scale=512:-1,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \
  -ss 00:00:03 -to 00:00:06 \
  iphone884.gif

ffmpeg \
  -i iphone884.mp4 \
  -r 15 \
  -vf "scale=300:-1,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \
  iphone884.gif

The right way to build Yandex Mobile Ads Example for iOS

To build the example with CocoaPods do the following steps:

Install build tools

Install Ruby with rbenv on macOS and install CocoaPods without sudo:

gem install cocoapods
(more…)

Installing Ruby with rbenv on macOS

Install Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Install rbenv

brew install rbenv
(more…)

Installing latest Ruby version on MacOS Sonoma with Homebrew

Determining how was Ruby Installed.

I have system Ruby:

% which -a ruby
/usr/bin/ruby
ruby -v
ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.x86_64-darwin23]

Installing Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
(more…)

Application folder does not exist when MacOS app is run the first time

When my QT app starts first time on MacOS, its directory ./Application Support/Sharlines/Lines/ does not exit, but QT creates it when I write to QSettings first time.

To create the local directory I added the following code:

// Local data directory does not exist when the app is run first time on MacOS.
if (fs::create_directories(GetLocalFolder()))
{
    qDebug() << static_cast<QString>(qtil::Format() << "Local folder '" << GetLocalFolder() << "' has been created.");
}
(more…)

My first attempt to build Yandex Mobile Ads Example for iOS

According to the official repository docs I tried to install CocaPods:

 sudo gem install cocoapods

but got the following error:

ERROR:  Error installing cocoapods:
        The last version of drb (>= 0) to support your Ruby & RubyGems was 2.0.6. Try installing it with `gem install drb -v 2.0.6` and then running the current command again
        drb requires Ruby version >= 2.7.0. The current ruby version is 2.6.10.210.

Installed some dependencies and the installation of CocoaPods succeeded:

sudo gem install drb -v 2.0.6
sudo gem install activesupport -v 6.1.7.8
sudo gem install cocoapods
(more…)

“Null object reference” exceptions on Android 14 in a QT app

When I switched to QT 6.7.2 and set QT_ANDROID_TARGET_SDK_VERSION "34" (that is Android 14) my QT app started to crash with the following stack traces:

On google Pixel 5 64-bit only 1080x2340 Android 14 (SDK 34) arm64-v8a:

Exception java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
  at android.os.Parcel.createExceptionOrNull (Parcel.java:3189)
  at android.os.Parcel.createException (Parcel.java:3167)
  at android.os.Parcel.readException (Parcel.java:3150)
  at android.database.DatabaseUtils.readExceptionFromParcel (DatabaseUtils.java:202)
  at android.database.DatabaseUtils.readExceptionFromParcel (DatabaseUtils.java:154)
  at android.content.ContentProviderProxy.call (ContentProviderNative.java:764)
  at android.content.ContentResolver.call (ContentResolver.java:2466)
  at android.content.ContentResolver.call (ContentResolver.java:2446)
  at ekfr.a (:com.google.android.gms@242013038@24.20.13 (190400-633713831):29)
  at com.google.android.gms.wallet.intentoperation.setupwizard.PaymentsSetupWizardAccountChangeIntentOperation.onHandleIntent (:com.google.android.gms@242013038@24.20.13 (190400-633713831):252)
  at com.google.android.chimera.IntentOperation.onHandleIntent (:com.google.android.gms@242013038@24.20.13 (190400-633713831):2)
  at ajdw.onHandleIntent (:com.google.android.gms@242013038@24.20.13 (190400-633713831):8)
  at pbh.run (:com.google.android.gms@242013038@24.20.13 (190400-633713831):70)
  at pbg.run (:com.google.android.gms@242013038@24.20.13 (190400-633713831):152)
  at elbx.run (:com.google.android.gms@242013038@24.20.13 (190400-633713831):21)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644)
  at java.lang.Thread.run (Thread.java:1012)
(more…)

Updating Yandex Mobile SDK to version 7.1

QT generates gradle.properties with the following values:

android.useAndroidX=true
android.enableJetifier=true
androidBuildToolsVersion=34.0.0
androidCompileSdkVersion=34
androidNdkVersion=26.2.11394342
buildDir=build
qt5AndroidDir=C:/dev/libs/Qt6/android/release/arm64-v8a/./src/android/java
qtAndroidDir=C:/dev/libs/Qt6/android/release/arm64-v8a/./src/android/java
qtMinSdkVersion=23
qtTargetAbiList=arm64-v8a
qtTargetSdkVersion=33
(more…)