本人在使用32位ubuntu时,更新完sdk时下载的adb仍然是64位的,因此adb不能用,qt便无法找到android设备。不知道是什么原因,试了好多方法都没有成功,后来干脆就把系统换成了64位的。
1.The android sdk tools
2.The android ndk
3.Apache Ant v1.8 or later
4.Java SE Development Kit (JDK) v6 or later. You can also use OpenJDK on Linux.
注:ubuntu环境中不需要额外安装adb(android debug bridge)驱动。
工具包下载解压后,首先需要添加环境变量:将jdk/bin/目录和sdk/tools目录添加到PATH环境变量中,本人比较习惯将环境变量添加到/etc/profile中,命令如下:
sudo vi /etc/profile
在profile文件末尾添加如下语句(注:需要把目录改成自己的安装目录):
export PATH=/home/liuyx/Qt_android/jdk1.7.0_79/bin:/home/liuyx/Qt_android/android-sdk-linux/tools:/home/liuyx/Qt_android/android-sdk-linux/platform-tools:$PATH
注:其中android-sdk-linux中platform-tools目录是更新完sdk之后,生成的。里面放有android开发常用工具如adb。
使用file adb 可以查看adb的文件类型:
adb: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=90addc5e3980f6efab749c9032cc8d7ad60dfb94, not stripped
如上所示,adb时64位文件,若在32位系统中运行,即会出现格式错误的错误。
执行如下命令:
android update sdk
执行完此命令后,需要设置一下http代理,否则速度非常慢,还会出现如下类似错误:
Failed to fetch URL https://dl.google.com/android/repository/addons_list-2.xml,
reason:Connection to https://dl.google.com refused
将android sdk manager全屏,鼠标放在左上角,就会看出packages和tools菜单,选择tools->options
设置http代理如下:
HTTP Proxy Server: mirrors.neusoft.edu.cn
HTTP Proxy Port:80
勾上Force https://…sources to be fetched using http://…
之后关闭对话框。
选择packages->reload。
在对话框中选择需要安装或者更新的文件,我的选择如下,更新文件较少,以后需要时可以再更新,第一幅图是打开时默认选择的,第二副图代表我刚开始选择更新的文件。如果条件允许,可以将所有的都选择。
更新完之后在android-sdk-linux目录下就会看到platform-tools目录,之后按照如上方式把此目录添加到PATH变量中。
下载64位Qt for android 的qt,安装之后打开qt,设置开发环境:
工具->选项->android设置如下
到此,qt环境便设置成功。但,此时用usb连接手机,设置手机开发人员选项 usb调试运行程序时,可能还会出现找不到设备的错误。
此时运行adb devices会出现如下错误:
List of devices attached
QMSDU15C14012513 no permissions
后者
List of devices attached
QMSDU15C14012513 unauthorized
在插上手机,打开usb调试在shell终端输入如下命令,即可查看手机usb信息
lsusb
信息较多,可以在插上usb之前执行lsusb,插上之后再执行lsusb命令,多出的一项既为我们需要的信息。我的华为荣耀畅玩5x信息如下:
Bus 003 Device 002: ID 12d1:1073 Huawei Technologies Co., Ltd.
其中12d1即表示厂商ID。
新建如下文件,添加如下内容:
sudo vi /etc/udev/rules.d/51-android.rules
SUBSYSTEM==”usb”, ATTR{idVendor}==”12d1”, MODE=”0666”, GROUP=”plugdev”
之后执行如下命令,把设备的“USB调试”关掉,拔掉usb线,再插上,打开usb调试,再执行 adb devices。
sudo service udev restart
adb kill-server
adb start-server
若为华为手机,需要额外设置,我的手机最开始时adb devices出现的是如下问题
List of devices attached
QMSDU15C14012513 unauthorized
此时表示手机没有认证,需要从手机工程菜单设置USB端口。
打开手机拨号键盘界面,输入 ##2846579## ,进入工程菜单,选择 后台设置->USB端口设置, 选择Google模式,之后重启手机。
重启之后,再执行adb devices就会出现如下错误
List of devices attached
QMSDU15C14012513 no permissions
此时,再按照lsusb上面设置即可。
此时再执行adb deveices即可出现如下信息:
List of devices attached
QMSDU15C14012513 device
到此,配置结束!!!!!!
打开Qt,选择android构建套件, Hello World运行成功,大功告成!!!!!!!!!!!!!!!!!!!