用于 Android 错误的 Qt QML

Posted

技术标签:

【中文标题】用于 Android 错误的 Qt QML【英文标题】:Qt QML for Android bugs 【发布时间】:2019-12-24 19:37:55 【问题描述】:

伙计们,我正在使用 Qt 5.14 编写即时消息应用程序,并且正在尝试将其部署到 Android 设备上

我已经安装了这些:

OpenJDK 8 (amd64) NDK r20b Qt Creator 4.11.0 Qt 5.14(适用于 android ARM64-v8a 设备)

我可以正确构建应用程序,但是当我从手机运行它时,只有一个白屏

从 Qt Creator 我可以看到这个应用程序输出

I nixsoftware.as: Late-enabling -Xcheck:jni
I Perf    : Connecting to perf service.
E nixsoftware.as: Invalid ID 0x00000000.
E Qt      : Can't create main activity
E Qt      : android.content.res.Resources$NotFoundException: String array resource ID #0x0
E Qt      :     at android.content.res.Resources.getStringArray(Resources.java:597)
E Qt      :     at android.content.res.MiuiResources.getStringArray(MiuiResources.java:160)
E Qt      :     at org.qtproject.qt5.android.bindings.QtLoader.startApp(QtLoader.java:423)
E Qt      :     at org.qtproject.qt5.android.bindings.QtActivityLoader.onCreate(QtActivityLoader.java:183)
E Qt      :     at org.qtproject.qt5.android.bindings.QtActivity.onCreateHook(QtActivity.java:266)
E Qt      :     at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:273)
E Qt      :     at android.app.Activity.performCreate(Activity.java:7224)
E Qt      :     at android.app.Activity.performCreate(Activity.java:7213)
E Qt      :     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
E Qt      :     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2926)
E Qt      :     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)
E Qt      :     at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
E Qt      :     at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
E Qt      :     at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
E Qt      :     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)
E Qt      :     at android.os.Handler.dispatchMessage(Handler.java:106)
E Qt      :     at android.os.Looper.loop(Looper.java:201)
E Qt      :     at android.app.ActivityThread.main(ActivityThread.java:6810)
E Qt      :     at java.lang.reflect.Method.invoke(Native Method)
E Qt      :     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
E Qt      :     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
I Adreno  : QUALCOMM build                   : cf57c9c, I1cb5c4d1cc
I Adreno  : Build Date                       : 09/23/18
I Adreno  : OpenGL ES Shader Compiler Version: EV031.25.03.01
I Adreno  : Local Branch                     :
I Adreno  : Remote Branch                    :
I Adreno  : Remote Branch                    :
I Adreno  : Reconstruct Branch               :
I Adreno  : Build Config                     : S L 6.0.7 AArch32
I Adreno  : PFP: 0x005ff112, ME: 0x005ff066
I ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
I ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0
I OpenGLRenderer: Initialized EGL, version 1.4
D OpenGLRenderer: Swap behavior 2

请帮忙

我可以给你更多信息

【问题讨论】:

【参考方案1】:

升级到 Qt 5.14 后,我注意到了类似的行为。搜索 Qt 错误报告将我带到QTBUG-80266。正如 cmets 中所建议的,我重新创建了 AndroidManifest.xml 并添加了我的本地更改,我的应用程序现在可以执行了。 希望对你有帮助。

【讨论】:

以上是关于用于 Android 错误的 Qt QML的主要内容,如果未能解决你的问题,请参考以下文章

用于 Android 应用程序开发的 QT Lite

Qt for Android 错误:目标 id 'android--1' 无效

错误的 Qt Android 主题

QT 5.1.1 android打包错误

QT Widget使用OpenCV错误部署到Android [重复]

clang++:错误:链接器命令失败,退出代码为 1 Qt Android