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:\Android\Qt\Qt5.7.0\Tools\mingw530_32\bin\mingw32-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:\Android\Qt\Qt5.7.0\5.7\android_x86\bin\androiddeployqt.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)
Qt for Android开发Android应用时的各种错误汇总(此片博文不成熟,请大家略过)的更多相关文章
- Android开发环境搭建时遇到问题的解决方法
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/linux_loajie/article/details/33823637 Android开发环境搭建 ...
- Android开发——Android多进程以及使用场景介绍
个层级,具体可以查看Android开发--Android进程保活招式大全中1.1部分的内容,这里就不赘述了. 根据进程中当前活动组件的重要程度,Android 会将进程评定为它可能达到的最高级别.例如 ...
- Android开发——Android M(6.0) 权限解决方案
Android开发--Android M(6.0) 权限解决方案 自从Android M(6.0)发布以来,权限管理相比以前有了很大的改变,很多程序员发现之前运行的好好的Android应用在Andro ...
- Android开发-Android Studio问题以及解决记录
[Android开发] Android Studio问题以及解决记录 http://blog.csdn.net/niubitianping/article/details/51400721 1.真 ...
- eclise -The method onClick(View) of type new View.OnClickListener(){} must override a superclass method 在做arcgis android开发的时候,突然遇到这种错误,The method onClick(View) of type new View.OnClickListener(){} mus
eclise -The method onClick(View) of type new View.OnClickListener(){} must override a superclass met ...
- android开发——Android开发中的47个小知识
1.判断sd卡是否存在 boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environme ...
- Android开发——Android手机屏幕适配方案总结
)密度无关像素,单位为dp,是Android特有的单位 Android开发时通常使用dp而不是px单位设置图片大小,因为它可以保证在不同屏幕像素密度的设备上显示相同的效果. /** * dp与px的转 ...
- Android开发——Android 6.0权限管理机制详解
.Android 6.0运行时主动请求权限 3.1 检测和申请权限 下面的例子介绍上面列出的读写SD卡的使用例子,可以使用以下的方式解决: public boolean isGrantExterna ...
- Android开发——Android的消息机制详解
)子线程默认是没有Looper的,Handler创建前,必须手动创建,否则会报错.通过Looper.prepare()即可为当前线程创建一个Looper,并通过Looper.loop()来开启消息循环 ...
随机推荐
- 关于DYNPRO程序的系统迁移与版本不匹配问题之一
前段时间公司做的一个项目,这两天在将项目程序导入公司,出问题了,搞了半天才发现是系统版本问题,但是还是不知道怎么解决,纠结ING... DYNRPO程序在创建(或是首次运行)的时候会自动生成一个DYN ...
- html/css 浮动练习之井字形布局
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- SQL Developer新建连接
1.打开SQL Developer,新建sys连接(sys为系统管理员拥有最高权限): 2.新建system连接(system为本地管理员,拥有次高权限): 3.新建scott(scott为普通用户, ...
- Python笔记总结week2
1. 关于Python程序执行原理:
- [原创]在Docker上部署mongodb分片副本集群。
一.安装docker. 请参考:http://www.cnblogs.com/hehexiaoxia/p/6150584.html 二.编写dockerfile. 1.在根目录下创建mongod的do ...
- c# 获取 本周、本月、本季度、本年 的开始时间或结束时间
#region 获取 本周.本月.本季度.本年 的开始时间或结束时间 /// <summary> /// 获取结束时间 /// </summary> /// <param ...
- 前端面试题之Html和CSS
又到了毕业季,很多小伙伴们都到了找工作的时候了,好多小伙伴问我有前端的面试题么?答:没有. 呃呃… … 小伙伴本宝宝真的没有骗你们,我从毕业到现在一直在一家公司没有换过,所以手里压根没有面试题.我们公 ...
- [转载]Python 元组、列表、字典、文件
python的元组.列表.字典数据类型是很python(there python is a adjective)的数据结构.这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的益 ...
- nano编辑器使用教程
使用Linux VPS会经常和编辑器打交道,一般常用的是vi和nano,虽然vi功能强大,但是相对新手来要稍微难上手,GNU nano是一个体积小巧而功能强大的文本编辑器.这里就简单说一下nano的使 ...
- MRPT笔记——MRPT在VS2013中的配置
Mobile Robot Programming Toolkit (MRPT)是一个跨平台的.开源的C++库,旨在帮助机器人研究员设计和实现SLAM.机器视觉和运动规划(避障)的算法. MRPT为移动 ...