• Qt for Android开发Android应用时的各种错误汇总(此片博文不成熟,请大家略过)


    “Qt for Android真的很脆弱,项目能跑起来靠的是奇迹,跑不起来,各种报错才是正常。。。”

    问题一:Qt for Android编译不过:make (e=2): 系统找不到指定的文件。

    之前运行好好的项目,今天又遇到问题了,不能正常编译。谷歌、百度各种搜索没结果,有的说是目录里有空格,有的说这样那样的问题,都不行。最后找到http://www.foxice.net/techqa_gdb12.asp,才想起之前改过Windows PATH环境变量,遂把无关环境变量去掉,重新编译,好了。

    =======================================================================================

    cp -f libuntitled.so C:/Users/lenovo/Desktop/build-untitled-Android_for_x86_GCC_4_9_Qt_5_7_0-Debug/android-build/libs/x86/libuntitled.so
    Makefile:510: recipe for target 'install_target' failed
    process_begin: CreateProcess(NULL, cp -f libuntitled.so C:/Users/lenovo/Desktop/build-untitled-Android_for_x86_GCC_4_9_Qt_5_7_0-Debug/android-build/libs/x86/libuntitled.so, ...) failed.
    make (e=2): 系统找不到指定的文件。

    mingw32-make: [install_target] Error 2 (ignored)
    15:20:01: 进程"E:AndroidQtQt5.7.0Toolsmingw530_32inmingw32-make.exe"正常退出。
    [。。。省略。。。]
    Application binary is not in output directory: C:/Users/lenovo/Desktop/build-untitled-Android_for_x86_GCC_4_9_Qt_5_7_0-Debug/android-build//libs/x86/libuntitled.so. Please run 'mingw32-make install INSTALL_ROOT=C:/Users/lenovo/Desktop/build-untitled-Android_for_x86_GCC_4_9_Qt_5_7_0-Debug/android-build/' first.
    15:20:02: 进程"E:AndroidQtQt5.7.05.7android_x86inandroiddeployqt.exe"退出,退出代码 7 。
    Error while building/deploying project untitled (kit: Android for x86 (GCC 4.9, Qt 5.7.0))
    When executing step "Build Android APK"
    15:20:02: Elapsed time: 00:02.

    ================================================================================================

     问题二: Qt Creator运行项目后,从“编译输出”窗口看到编译一切正常,就是不输半天没反应,而且模拟器一直停在桌面没反应,导致最后超时执行超时。

    查找N多方法,最后找到http://blog.csdn.net/qq_17242957/article/details/48212179,觉得靠谱点。

    如果提示端口被占用,就打开任务管理器关闭对应进程(一般是已经有一个adb.exe运行了)

    总结:adb.exe程序经常无法自动停止,需要从windows任务管理器中强制关闭,这样就不影响后续Qt Creator的正常运行;而导致这种状况很有可能是系统中安装了其他开发android的开发工具,如Android Studio,最好先卸载这类工具。

     基本步骤:

     1查看是否有设备连接:

     adb devices

     2查看adb调试程序是否能正常运行:

     adb nodaemon sever

     3 查看端口是否被占用,被哪个进程占用,记下进程号

    netstat -aon|findstr 5037

    4 查找进程号对应的进程名称(比如成称号是1982)

    tasklist|findstr 1982

    5. 强制结束进程

    taskkill /f /t /im adb.exe

    6 重启adb调试服务

    adb kill-server

    adb start-server 

     最后,如果还是不行,

    1. 可以尝试在系统换进变量中创建ANDROID_ADB_SERVER_PORT=5038的环境变量

    2. 尝试重装java、apache ant、android ndk、android sdk、qt for android,注意避免在安装路径中包含空格的(和Qt Creator一致),只安装Android SDK(不要安装Android Studio

    3.有时重新安装android sdk会发现它会自动找到java路径,但那个java路径版本不对,比如找到了oracle其他产品自带的java路径,这时要删除那个软件,重新安装android sdk,让它找到正确的java sdk

     终极解决办法:

    ===================================================

    重新安装开发环境。Qt for Android需要用到多个外部工具和框架,而且各个软件版本有很多。不是任意版本的工具组合都能成功。笔者建议当前(2016年8月)可以尝试如下版本:

    1. Android NDK(android-ndk-r12b_x86_64) 

    2. Java 8 (jdk1.8.0_74)

    3. Android SDK(installer_r24.4.1-windows.exe)

    4. Apache Ant(apache-ant-1.9.7-bin.zip)

    5. Qt for Android(qt-opensource-windows-x86-android-5.7.0.exe)

  • 相关阅读:
    OpenGL相关文章
    gluOrtho2D与glViewport
    QOpenGLWidget
    openGL中的gl,glu,glut
    QT对话框
    QT布局
    QT容器类
    [POJ1014]Dividing(二进制优化多重背包)
    [Codefroces401D]Roman and Numbers(状压+数位DP)
    [HDU6326]Monster Hunter(贪心)
  • 原文地址:https://www.cnblogs.com/andy65007/p/5776933.html
Copyright © 2020-2023  润新知