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)
On google Pixel 8 1080x2400 Android 14 (SDK 34) 8,192 MB arm64-v8a
:
Exception java.lang.RuntimeException: Unable to start activity ComponentInfo{net.geographx.LinesGame/net.geographx.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.ViewParent org.qtproject.qt.android.QtRootLayout.getParent()' on a null object reference
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3782)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3922)
at android.app.ActivityThread.handleRelaunchActivityInner (ActivityThread.java:5946)
at android.app.ActivityThread.handleRelaunchActivity (ActivityThread.java:5842)
at android.app.servertransaction.ActivityRelaunchItem.execute (ActivityRelaunchItem.java:76)
at android.app.servertransaction.ActivityTransactionItem.execute (ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:139)
at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:96)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2443)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loopOnce (Looper.java:205)
at android.os.Looper.loop (Looper.java:294)
at android.app.ActivityThread.main (ActivityThread.java:8177)
at java.lang.reflect.Method.invoke
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:971)
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.ViewParent org.qtproject.qt.android.QtRootLayout.getParent()' on a null object reference
at org.qtproject.qt.android.QtActivityDelegate.updateActivityAfterRestart (QtActivityDelegate.java:83)
at org.qtproject.qt.android.QtActivityBase.handleActivityRestart (QtActivityBase.java:68)
at org.qtproject.qt.android.QtActivityBase.onCreate (QtActivityBase.java:99)
at org.qtproject.qt.android.bindings.QtActivity.onCreate (QtActivity.java:16)
at net.geographx.MainActivity.onCreate (MainActivity.java:25)
at android.app.Activity.performCreate (Activity.java:8595)
at android.app.Activity.performCreate (Activity.java:8573)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1456)
at androidx.test.runner.MonitoringInstrumentation.callActivityOnCreate (MonitoringInstrumentation.java:2)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3764)
On google Pixel 5 64-bit only1080x2340Android 13 (SDK 33)-arm64-v8auk_UA
:
Exception java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$4.done (AsyncTask.java:415)
at java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:381)
at java.util.concurrent.FutureTask.setException (FutureTask.java:250)
at java.util.concurrent.FutureTask.run (FutureTask.java:269)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:637)
at java.lang.Thread.run (Thread.java:1012)
Caused by java.lang.IllegalArgumentException: Given work is not active: JobWorkItem{id=3 intent=Intent { act=com.google.android.settings.intelligence.modules.routines.impl.action.REREGISTER_LOCATION_ROUTINES } dcount=1}
at android.app.job.JobParameters.completeWork (JobParameters.java:503)
at tp.doInBackground (PG:10)
at android.os.AsyncTask$3.call (AsyncTask.java:394)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
https://github.com/MerginMaps/mobile/issues/3481
we’re targeting Android 13 (API level 33) right now (also default for Qt 6.6.3)
Google Play will likely require Android 14 from September 2024
Qt 6.7 has Android 14 as the default target (but we probably don’t need to upgrade Qt)
behavior changes when we switch: https://developer.android.com/about/versions/14/behavior-changes-14
Probably something was changes in qt-everywhere-src-6.7.2\qtdoc\examples\demos\hangman\purchasing\android
kdiff3 /mnt/c/dev/repos/examples/src/LinesGame/LinesGameQt/platform/android/src/org/qtproject/qt/android/purchasing/ /mnt/c/dev/repos/qt-everywhere-src-6.7.2/qtdoc/examples/demos/hangman/purchasing/android/src/org/qtproject/qt/android/purchasing/
kdiff3 /mnt/c/dev/repos/examples/src/LinesGame/LinesGameQt/platform/android/src/org/qtproject/qt/android/purchasing/ /mnt/c/dev/repos/qt-everywhere-src-6.6.2/qtdoc/examples/demos/hangman/purchasing/android/src/org/qtproject/qt/android/purchasing/
kdiff3 /mnt/c/dev/repos/examples/src/LinesGame/LinesGameQt/Purchasing/android/ /mnt/c/dev/repos/qt-everywhere-src-6.7.2/qtdoc/examples/demos/hangman/purchasing/android/
kdiff3 /mnt/c/dev/repos/examples/src/LinesGame/LinesGameQt/Purchasing/android/ /mnt/c/dev/repos/qt-everywhere-src-6.6.2/qtdoc/examples/demos/hangman/purchasing/android/
kdiff3 /mnt/c/dev/repos/examples/src/LinesGame/LinesGameQt/Purchasing/inapp /mnt/c/dev/repos/qt-everywhere-src-6.7.2/qtdoc/examples/demos/hangman/purchasing/inapp
On Emulators:
03-16 21:41:58.788 8851 8896 W GooglePlayServicesUtil: Google Play services out of date for net.geographx.LinesGame. Requires 212800000 but found 201817023
03-16 21:41:58.800 8851 8909 W GooglePlayServicesUtil: Google Play services out of date for net.geographx.LinesGame. Requires 212800000 but found 201817023
03-16 21:41:58.801 8851 8909 W GoogleApiManager: The service for com.google.android.gms.internal.appset.zzd is not available: ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null, message=null}
03-16 21:41:59.773 6499 8770 W ConnectionTracker: Exception thrown while unbinding
03-16 21:41:59.773 6499 8770 W ConnectionTracker: java.lang.IllegalArgumentException: Service not registered: lm@dd5cef2
03-16 21:41:59.773 6499 8770 W ConnectionTracker: at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1757)
03-16 21:41:59.773 6499 8770 W ConnectionTracker: at android.app.ContextImpl.unbindService(ContextImpl.java:1874)
03-16 21:41:59.773 6499 8770 W ConnectionTracker: at android.content.ContextWrapper.unbindService(ContextWrapper.java:792)
03-16 21:41:59.773 6499 8770 W ConnectionTracker: at ce.b(:com.google.android.gms.dynamite_measurementdynamite@201817056@20.18.17 (040800-0):1)
03-16 21:41:59.773 6499 8770 W ConnectionTracker: at ce.a(:com.google.android.gms.dynamite_measurementdynamite@201817056@20.18.17 (040800-0):5)
03-16 21:41:59.773 6499 8770 W ConnectionTracker: at ln.A(:com.google.android.gms.dynamite_measurementdynamite@201817056@20.18.17 (040800-0):10)
03-16 21:41:59.773 6499 8770 W ConnectionTracker: at ky.a(:com.google.android.gms.dynamite_measurementdynamite@201817056@20.18.17 (040800-0):3)
03-16 21:41:59.773 6499 8770 W ConnectionTracker: at dy.run(:com.google.android.gms.dynamite_measurementdynamite@201817056@20.18.17 (040800-0):2)
03-16 21:41:59.773 6499 8770 W ConnectionTracker: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
03-16 21:41:59.773 6499 8770 W ConnectionTracker: at java.util.concurrent.FutureTask.run(FutureTask.java:266)
03-16 21:41:59.773 6499 8770 W ConnectionTracker: at iw.run(:com.google.android.gms.dynamite_measurementdynamite@201817056@20.18.17 (040800-0):15)
03-16 21:41:59.919 8772 8791 W System : A resource failed to call end.
https://stackoverflow.com/questions/78701738/google-play-services-out-of-date-for-com-domain-myapp-requires-212800000-but-fo