Qt3D на Android
Можно ли запустить Qt 3D с чистым C++ на Android? Все примеры C++, такие как пример базовой формы C++, получили эту запись в файле.pro:
android|ios|tvos|winrt {
warning( "This example is not supported for android, ios, tvos, or winrt." )
}
Я написал приложение, которое очень похоже на пример, но меньше. Это просто Qt3DWindow с одной сущностью и несколькими компонентами. Он работает на моем ноутбуке (Windows 8.1), но он падает на моих AVD.
Я попробовал некоторые Nexus и Pixel AVD с API от 23 до 25 с программным и аппаратным рендерингом графики.
Я следовал этому руководству, чтобы настроить QtCreator 2.3.0, и я использую Qt 5.9.0-X86-rc. Все примеры Android работают нормально.
Это вывод приложения:
I art: не поздно - включение -Xcheck:jni (уже включено)
W System: ClassLoader ссылается на неизвестный путь:
Я QtCore: Старт
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt5Gui.so: неиспользуемая запись DT: тип 0x1d arg 0x53bd4
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt5Gui.so: неподдерживаемые флаги DT_FLAGS_1=0x81
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt5Network.so: неиспользуемая запись DT: тип 0x1d arg 0x13595
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt5Network.so: неподдерживаемые флаги DT_FLAGS_1=0x81
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt53DCore.so: неиспользуемая запись DT: тип 0x1d arg 0xd8b1
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt53DCore.so: неподдерживаемые флаги DT_FLAGS_1=0x81
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt5Concurrent.so: неиспользуемая запись DT: тип 0x1d arg 0xbb2
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt5Concurrent.so: неподдерживаемые флаги DT_FLAGS_1=0x81
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt53DRender.so: неиспользуемая запись DT: тип 0x1d arg 0x2a36b
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt53DRender.so: неподдерживаемые флаги DT_FLAGS_1=0x81
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt5Gamepad.so: неиспользуемая запись DT: введите 0x1d arg 0x2f36
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt5Gamepad.so: неподдерживаемые флаги DT_FLAGS_1=0x81
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt53DInput.so: неиспользуемая запись DT: тип 0x1d arg 0xadb2
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt53DInput.so: неподдерживаемые флаги DT_FLAGS_1=0x81
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt53DLogic.so: неиспользуемая запись DT: тип 0x1d arg 0x19c4
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt53DLogic.so: неподдерживаемые флаги DT_FLAGS_1=0x81
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt53DExtras.so: неиспользуемая запись DT: тип 0x1d arg 0x11617
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt53DExtras.so: неподдерживаемые флаги DT_FLAGS_1=0x81
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt5Widgets.so: неиспользуемая запись DT: введите 0x1d arg 0x6bf99
W linker: /data/app/org.qtproject.example-2/lib/x86/libQt5Widgets.so: неподдерживаемые флаги DT_FLAGS_1=0x81
W linker: /data/data/org.qtproject.example/qt-reserved-files/plugins/platforms/android/libqtforandroid.so: неиспользуемая запись DT: тип 0x1d arg 0x8747
W linker: /data/data/org.qtproject.example/qt-reserved-files/plugins/platforms/android/libqtforandroid.so: неподдерживаемые флаги DT_FLAGS_1=0x81
Я Qt: Qt начала
W linker: /data/data/org.qtproject.example/qt-reserved-files/plugins/bearer/libqandroidbearer.so: неиспользуемая запись DT: тип 0x1d arg 0x16dd
W linker: /data/data/org.qtproject.example/qt-reserved-files/plugins/bearer/libqandroidbearer.so: неподдерживаемые флаги DT_FLAGS_1=0x81
W linker: /data/data/org.qtproject.example/qt-reserved-files/plugins/gamepads/libandroidgamepad.so: неиспользуемая запись DT: тип 0x1d arg 0x1223
W linker: /data/data/org.qtproject.example/qt-reserved-files/plugins/gamepads/libandroidgamepad.so: неподдерживаемые флаги DT_FLAGS_1=0x81
W linker: /data/app/org.qtproject.example-2/lib/x86/libandroid_test.so: неиспользуемая запись DT: тип 0x1d arg 0x6f6
D OpenGLRenderer: использовать EGL_SWAP_BEHAVIOR_PRESERVED: true
D: HostConnection:: get () Установлено новое соединение с хостом 0xaa93bd80, tid 5833
D: HostConnection:: get () Установлено новое соединение с хостом 0xaa93bf80, tid 5854
Я OpenGLRenderer: инициализированный EGL, версия 1.4
W OpenGLRenderer: не удалось выбрать конфигурацию с EGL_SWAP_BEHAVIOR_PRESERVED, повторная попытка без...
W linker: /data/data/org.qtproject.example/qt-reserved-files/plugins/sceneparsers/libgltfsceneimport.so: неиспользуемая запись DT: тип 0x1d arg 0x3816
W linker: /data/data/org.qtproject.example/qt-reserved-files/plugins/sceneparsers/libgltfsceneimport.so: неподдерживаемые флаги DT_FLAGS_1=0x81
D: HostConnection:: get () Установлено новое соединение с хостом 0x9ed4a8c0, tid 5862
D: HostConnection:: get () Установлено новое соединение с хостом 0xaa305c00, tid 5855
F libc: фатальный сигнал 11 (SIGSEGV), код 1, адрес ошибки 0x4 в tid 5862 (QtThread)
"org.qtproject.example" умер.
1 ответ
Мне удалось развернуть приложение на физическом устройстве. Кажется, проблема с (конфигурацией моих) AVD.