【问题标题】:The first use of Android emulator第一次使用安卓模拟器
【发布时间】:2017-02-21 16:34:11
【问题描述】:

通过Qt Creator 5.8,并使用AVD_for_Nexus_4_by_Google API 22 armeabi 套件,我在Creating the Project 部分之后创建了一个名为App1 的应用程序。
然后创建一个AVD,如下所示运行应用程序并选择AVD> OK,然后等待。

不会显示任何虚拟设备来查看我的应用程序在那里工作并在“编译输出”中获得以下内容:

// ...(此处多行结束构建成功)

构建成功
总时间:5.413 秒
Android 包在 14.136 毫秒内成功构建。
-- 文件:C:/Users/CS/Documents/Qt/App1/build-App1-Android_for_armeabi_v7a_GCC_4_9_Qt_5_8_0-Debug/android-build//build/outputs/apk/android-build-debug.apk
警告:无法在任何导入路径中解析 QML 导入:QtQuick.Extras.Private.CppUtils
警告:无法在任何导入路径中解析 QML 导入:QtQuick.Extras.Private.CppUtils
12:26:30:进程“C:\Qt\Qt5.8.0\5.8\android_armv7\bin\androiddeployqt.exe”正常退出。
构建/部署项目 App1 时出错(套件:Android for armeabi-v7a(GCC 4.9,Qt 5.8.0))
执行步骤“部署到 Android 设备”时
12:28:35:经过时间:02:20。

请问您对此问题有何看法?请问有什么办法可以解决吗?

【问题讨论】:

    标签: android c++ qt android-emulator avd


    【解决方案1】:

    要了解这里发生了什么,您至少应该打开部署步骤的详细输出(构建设置 -> Qt 创建器中的高级操作)。

    我看到这种情况发生了几次,因为与 android 模拟器的连接太慢而无法及时完成部署,然后切换到使用效果更好的真实设备。多次启动模拟器时,使用模拟器确实对我有用。仅使用 x86 版本的模拟器和 Qt 进行开发可能会使一切运行得更快、更流畅,因为模拟器具有更好的性能。但是,在这种情况下,您不会看到代码的特定于 arm 的问题,并且您必须确保您的代码独立于使用的处理器架构工作。

    请注意,QTBUG-44697 可能会使您无法使用来自 Google 的最新 Android 模拟器。恢复 workaround 是为了使 Qt 与早期版本的模拟器一起工作而引入的,这使得模拟器至少在 Qt 5.6.2 中对我有用。然而,这需要从(修补的)源构建 Qt 本身。

    【讨论】:

    • 首先感谢您的回答。而我在Qt Creator中搜索Build Settings却找不到! :(
    • 有人告诉我,在 90% 的情况下,Android 应用程序是使用 Arm(而不是 x86)创建的!那么它们之间有什么区别呢?如果 x86 提供更好的输出,为什么我不应该这样使用它?
    • 在左侧单击项目,然后在“构建并运行”下选择您的工具包(可能是 android for armeabi-v7a...)和“构建”。然后在构建设置下,您有“构建步骤”。 “Build Android SDK”包含我所指的设置。
    • 大部分android设备都有arm处理器,使用Qt时必须选择目标CPU的架构,因为它是基于NDK的,即native code。因此,要在 arm 设备(大多数设备是 arm 设备)上运行您的代码,您必须为 arm 进行编译。 only 使用 x86 构建在模拟器上进行调试可能会有所帮助,因为在使用 google android 时,x86 仿真的工作速度比 arm 仿真快得多(我个人感觉是 10 倍以上)模拟器。
    • 该错误更像是您的工具链/调试器/sdk/ndk 设置的问题。 sdk 中是否安装了平台工具?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 2011-03-13
    • 2011-06-12
    相关资源
    最近更新 更多