-
Notifications
You must be signed in to change notification settings - Fork 16
Description
说来话长,我只在用Qt5.15.2的安卓开发环境,最近想给引擎加个二维码扫描功能,找了三方开源库,发现QZXing挺不错,就加了进去,没想到有个问题:
win下完全正常,安卓下armeabi-v7a正常,arm64-v8a的应用,只要一解析就报错闪退:
Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x6e6b63db00 in tid 24061 (Thread (pooled)), pid 23955
造成闪退的原因是,一个函数throw出exception,而调用这个函数的函数明明用try包含了但好像没get到(当然不是低级错误,比如类型错误等等),我花了大量的时间去修改和调试,无果,真的是太诡异了,主要是只有arm64-v8a会有这个问题,无论我换安卓、改用NDK其他版本编译、找了大量的fork后又修改了QZXing的源码都没解决。。。
于是想起来要不试试咱这个最新的开发环境(前面那么多废话是原因铺垫),下载、解压、配置环境、编译插件一套步骤下来后,发现上面的问题解决了,但其他问题却更大了。。。
1、QtCreator的编译安卓时,ABIs本来是armeabi-v7a arm64-v8a可以勾选,但全变成arm-linux-android-elf-32bit arm-linux-android-elf-64bit了,虽然可以用自定义步骤来重写一下,但运行真机时居然提示我的机子没有armeabi-v7a arm64-v8a架构,所以不能运行,QtCreator这种Bug我也见多了,现在我还发现两三个bug没解决,但奇怪的是之前是正常的,下载配置了咱这个安卓开发环境后突然就变成这样了。。。
2、purchasing问题依旧(只要加入就闪退)。。。
3、运行我的项目后,发现整个应用程序的大小超出了屏幕(高度超出了大概一个字的距离);
4、继续加载另一个界面(以前都是正常的),会黑屏,看日志报错:
W Qt A11Y : AccessibilityNodeInfo with empty contentDescription: -2147483641
W Qt A11Y : AccessibilityNodeInfo with empty contentDescription: -2147483640
W Qt A11Y : AccessibilityNodeInfo with empty contentDescription: -2147483639
W Qt A11Y : AccessibilityNodeInfo with empty contentDescription: -2147483611
(这几个错误会一直弹)
,再加载其他界面,会有报错:
qrc:/QML/menu.qml:664:5: Type Dialog1.FileDialog unavailable,
qrc:/android_rcc_bundle/qml/QtQuick/Dialogs/DefaultFileDialog.qml: No such file or directory
不知道是不是咱这个版本把 QtQuick.Dialogs 去掉了还是怎么(应该不是,因为PC版的Qt5.15.12是正常的,所以目前完全用不了了。。。
哦对了,NDK21和NDK23两个版本我都试了,错误一致。