Qt5 for Android:不兼容的 ABI
Posted
技术标签:
【中文标题】Qt5 for Android:不兼容的 ABI【英文标题】:Qt5 for Android: incompatible ABI 【发布时间】:2014-03-06 23:48:55 【问题描述】:我最近安装了 Qt5,它对 API 17 和 armeabi-v7a 的工作就像一个魅力。
但是我添加了第二个带有其他参数的 AVD(当然,我在 AVD 设置中安装了包)。现在,我无法为 API10 编译第一个项目和新项目。检查任何工具链(armeabi 或 armeabi-v7a)时,选择 AVD 的窗口显示我没有兼容的 AVD(在消息显示中显示 AVD 支持 default/armeabi
或 default/armeabi-v7a
)。
有谁知道我该如何修复这个?我认为问题出在“default/
”...
【问题讨论】:
你在这方面有什么进展吗?我在 Linux x86_64 上看到与 QtCreator 3.0.2 和 Qt 5.2.1 完全相同的症状。 【参考方案1】:这个问题似乎有另一种解决方法:
在 QtCreator -> Projects -> BuildEnvironment 添加变量
android_TARGET_ARCH=default/armeabi-v7a
然后 AVD 显示为兼容。
【讨论】:
这其实是最好的答案 这个解决方案对我有用,但过了一段时间我发现它破坏了我的编译,我无法在 AVD 上部署任何应用程序。请阅读:kdab.com/qt-on-android-episode-2/#comment-3496【参考方案2】:事实证明,在最新版本的 Android SDK 中,这确实是一个改变的行为,它列出了带有前缀标签信息的 AVD。因此,它返回的是 default/armeabi-v7a
,而不是 armeabi-v7a
,导致 QtCreator 抱怨不支持 ABI。
这是 QtCreator 错误报告:https://bugreports.qt.io/browse/QTCREATORBUG-11658
您可以在补丁进入后等待新的 QtCreator 发布(目前正在审查中),或者您可以尝试将您的 Android SDK 工具从版本 22.6 降级为仅报告 ABI: armeabi-v7a
的东西执行 android list avd
时的 Tag/ABI: default/armeabi-v7a
【讨论】:
谢谢,它证实了我的假设【参考方案3】:花了一些时间弄清楚如何从 Android SDK Tools 22.6 降级。以下是降级方法:
下载Android SDK Tools 22.3
在 SDK 下将 tools-folder 重命名为 tools-22.6(例如 ~/adt-bundle-linux-x86_64-20131030/sdk/tools)
将下载的工具解压到上述路径【讨论】:
以上是关于Qt5 for Android:不兼容的 ABI的主要内容,如果未能解决你的问题,请参考以下文章
Swift 5.0 计划年底发布:主打 ABI 稳定性,不向前兼容
平台 android NDK 不支持 ABI [armeabi, mips]
No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android