在 Android 应用程序上部署 Qt 时出错
Posted
技术标签:
【中文标题】在 Android 应用程序上部署 Qt 时出错【英文标题】:Error deploying Qt on Android application 【发布时间】:2014-04-08 18:46:07 【问题描述】:我正在尝试运行我的第一个 Qt android
应用程序,并按照本教程进行操作:
http://urfoex.blogspot.ro/2013/12/qt5-android-setting-up-qt-52-for-android.html
但是,在我运行它之后,我得到了这个错误:
i686-linux-android-g++: error: unrecognized command line option '-marm' make: ***
[main.o] Error 1 21:33:42: The process "make" exited with code 2.
Error while building/deploying project avd_tests (kit: Android for x86 (GCC 4.8, Qt 5.2.1)) When executing step 'Make'
我也尝试过使用armeabi
,但我得到了:
In file included from ../.android-ndk/sources/cxx-stl/gnu-libstdc++/4.8/include/algorithm:60:0,
from ../.Qt5.2.1/5.2.1/android_armv7/include/QtCore/qglobal.h:82,
from ../.Qt5.2.1/5.2.1/android_armv7/include/QtCore/qcoreapplication.h:45,
from ../.Qt5.2.1/5.2.1/android_armv7/include/QtWidgets/qapplication.h:45,
from ../.Qt5.2.1/5.2.1/android_armv7/include/QtWidgets/QApplication:1,
from ../avd_tests/qtquick2controlsapplicationviewer/qtquick2controlsapplicationviewer.h:13,
from ../avd_tests/main.cpp:1: ../.android-ndk/sources/cxx-stl/gnu-libstdc++/4.8/include/utility:68:28: fatal error: bits/c++config.h: No such file or directory #include <bits/c++config.h>
^ compilation terminated. make: *** [main.o] Error 1 21:44:14: The process "make" exited with code 2. Error while building/deploying project avd_tests (kit: Android for armeabi-v7a (GCC 4.8, Qt 5.2.1)) When executing step 'Make'
我正在构建的应用程序是默认的Qt Quick
应用程序。我正在使用Qt 5.2.1
和QtCreator 3.0.1
。
任何人都知道它可能是什么,或者有人知道如何让Android
上的Qt
在GNU/Linux
上工作吗?
【问题讨论】:
【参考方案1】:事实证明,这是Android SDK
较新版本中的一个已知错误。
正如Qt for Android
的创建者Bogdan Vatra 所指出的,解决方案是:
为了解决问题,我从http://download.qt-project.org/snapshots/qt/5.3/5.3.0-RC/2014-04-14_55/下载了qt-opensource-linux-x64-android-5.3.0-RC_2014-04-14_00-48-35-55.run
,部署成功!
谢谢博格丹!
【讨论】:
【参考方案2】:您应该从here 下载并安装适用于 Android(Linux 32 位或 64 位)的 Qt 5.2.1。 Qt Project 的 SDK 不随 Android SDK/NDK 一起提供,因此您必须自己从 here 下载并安装它们。您需要 Android NDK(版本 r9+)和 SDK(版本 22+)。
如果您不打算创建 Android Java 应用,请确保您只下载 SDK 而不是 ADT Bundle 或 Android Studio。
下载后解压。对于 Android SDK,您应该连接到 Internet 并下载所需的工具。您必须至少安装 Android API-13!您还必须安装 Android SDK Platform-tools 和 Android SDK Build-tools。
打开 Qt Creator。进入Tools->Option->Android
设置页面,设置Android SDK和NDK位置。
你可以找到详细教程Here。
【讨论】:
非常感谢您的回答。我会在几个小时内尝试你的例子,因为我现在在工作。我使用了 Qt 5.2.1 linux 64 在线安装程序并从那里安装了 android。我手动下载了 ndk 和 sdk 并从 tools->option->android 手动设置路径,但您可以看到上面的结果。不过我会试试你的方法,我会让你知道结果。 我试过了,但是我得到了以下错误: 构建后我得到: 12:40:26: Running steps for project untitled2... 12:40:26: 配置不变,跳过 qmake 步骤. 12:40:26:开始:“make” make:“first”无事可做。 12:40:26:“make”进程正常退出。 12:40:26:删除目录 /home/user/build-untitled2-Android_for_armeabi_v7a_GCC_4_8_Qt_5_2_1-Debug/android-build 12:40:26:开始:“make” INSTALL_ROOT=/home/user/build-untitled2-Android_for_armeabi_v7a_GCC_4_8_Qt_5_2_1-Debug/ android-build 安装 cp -f -R /home/user/untitled2/qml/untitled2 /home/user/build-untitled2-Android_for_armeabi_v7a_GCC_4_8_Qt_5_2_1-Debug/android-build/assets/qml/ install -m 755 -p “libuntitled2.so” “/home/user/build-untitled2-Android_for_armeabi_v7a_GCC_4_8_Qt_5_2_1-Debug/android-build/libs/armeabi-v7a/libuntitled2.so” 12:40:26:进程“make”正常退出。构建/部署项目 untitled2 时出错(套件:Android for armeabi-v7a(GCC 4.8,Qt 5.2.1))执行步骤“部署到 Android 设备”时 12:42:40:经过时间:02:14。以上是关于在 Android 应用程序上部署 Qt 时出错的主要内容,如果未能解决你的问题,请参考以下文章
使用 buildozer 在 android 上部署 kivy 应用程序时出错
如何解决`E Qt JAVA:找不到Surface 1-通过意图恢复到Qt @ android应用程序时出错?
Qt for android运行时出错 Error: Target id 'android--1' is not valid