900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > ubuntu下链接手机调试android程序 ADB无法识别手机

ubuntu下链接手机调试android程序 ADB无法识别手机

时间:2018-10-12 18:15:55

相关推荐

ubuntu下链接手机调试android程序 ADB无法识别手机

ubuntu下链接手机调试android程序,ADB无法识别手机

摘要:

最近刚开始接触android开发,用的ubuntu系统,结果无奈,用模拟机开发总是会各种无法真实模拟,而且有些程序也无法测试,而且速度也是相当慢的,所以总是希望能链接上手机直接测试,那速度可就快多了,结果链接上的之后,发现adb管理中无法正常识别手机这个驱动,几经搜索,发现了解决方案,感谢万能的WWW,将处理过程记载如下,以方便后续自己查看。

正文:

出现无法识别的环境简介如下:ubuntu系统:12.10,非root帐号登录(经过测试,root帐号登录编写android及调试,是可以的)

从网上找到的原因是说adb的启动不是以root帐号启动,导致找到外来的andrid机器不能被正常识别,因为没有权限,需要切换到root启动,具体步骤如下:

先把eclipse关闭

首先切换到adb目录,新版的sdk中adb的目录是platform-tools,而以前的目录是tools下,

发现确实是没有权限,那就先关掉现有的adb服务,用root帐号重新启动一个

然后再次执行查看:

发现已经可以正常识别了,再次run as -> android application 出来的设备图就可以看到

已经可以正常执行,直接点击OK即可,而不再是之前的???? unknown状态了

参考资料:

/art/04/256341.htm

中兴手机

Ubuntu下以USB调试方式链接Android手机

ubuntu android development debug

本文主要是解决Linux下android手机usb调试设备不能正确识别的问题, 首先附上原文的 Linux下搭建android开发环境快速指南。

机器型号 ZTE U880

固件版本 android 2.3.7

开发宿主系统 Oneiric (Ubuntu 11.10)

配置android SDK开发环境 (这一段我没有去试,我是通过官方的linux安装引导包下载的)

1、下载android1.6 SDK

因为我的固件版本为android1.6因此下载sdk1.6

/android/android-sdk-windows-1.6_r1.zip

http://kugou.me/android-sdk-linux_x86-1.6_r1.tgz

将SDK解压到

~/android/android-sdk-linux_x86-1.6_r1

2、安装eclipse

因为android官方推荐使用eclipse,而且官方也推出了eclipse插件ADT辅助开发。

去eclipse官方网站下载eclipEclipse IDE for Java EE Developers (For Linux 32/64 bit)

eclipse不用安装,直接解压到目录中运行eclipse就可以了。

3、安装ADT

打开eclipse

Help--> Install New SoftWare..

Add...

添加Location:http://dl-/android/eclipse

点击下一步 接受 下载 安装。

4、配置ADT

安装ADT后会重启eclipse

首先需要指定SDK目录:

Window--> Preferences--> android -->SDK Location:

指定路径为~/android/android-sdk-linux_x86-1.6_r1

OK。现在可以新建虚拟机创建android工程进行开发调试了。

关于如何使用eclipse+ADT开发android应用程序在网上有大量的教程,请自己google :)

--下面是用USB调试方式连接手机的方法--

1、用USB接手机(手机需要切换到usb调试模式 设置-->应用程序-->开发-->usb调试)

lemon@*:~/android-sdks/platform-tools$ lsusb

... ...

Bus 001 Device 003: ID 5986:0241 Acer, Inc BisonCam, NB Pro

Bus 002 Device 006: ID19d2:1382ONDA Communication S.p.A.

Bus 002 Device 003: ID 1058:1023 Western Digital Technologies, Inc.

Bus 003 Device 002: ID 147e:1001 Upek

Bus 004 Device 002: ID 093a:2516 Pixart Imaging, Inc.

Bus 005 Device 002: ID 0a5c:2150 Broadcom Corp. BCM2046 Bluetooth Device

看到上面紫色字体了吗,那就是udev识别的usb调试设备标识idVendor=19d2,idProduct=1382

大多数ZTE android手机应该都一样。

事实上可以去官网查 USB Vendor IDs 列表:

/guide/developing/device.html#VendorIds

如: ZTE19D2

2、配置udev规则文件,调整设备文件权限

接下来我们就可以根据前面获得的usb调试设备标识来调整我们的设备文件的各种属性以帮助android sdk识别usb调试设备。

在/etc/udev/rules.d下创建规则文件50-android.rules

# mk file with a new window

sudo gedit 50-android.rules

# add something as:

SUBSYSTEMS=="usb",ATTRS{idVendor}=="19d2",SYMLINK+="android_adb",OWNER="lemon"

# save & close window

cat 内容如下:

lemon@*:/etc/udev/rules.d$ cat 50-android.rules

SUBSYSTEMS=="usb",ATTRS{idVendor}=="19d2" ,SYMLINK+="android_adb",OWNER="lemon"

ATTRS{idVendor}为上一步获得的 idVendor 参数

SYMLINK参数使设备目录增加一个连接文件指向原设备文件

OWNER为你当前的用户,也是你运行adb服务的用户

(这里要特别注意,我们的目的就是使android手机调试设备文件的所有者权限与开启的 adb 服务的所有者权限相一致,这样usb设备才能被adb服务识别)。

运行以下命令使刚更改的配置生效 (用不了? 有事没事man一下了)

sudo udevadm control --reload-rules

4、拔插一下USB,生成新的设备文件

这时会在/dev/下出现一个连接文件android_adb,它指向的设备就是你的USB调试的手机设备。(我心急没去看那个文件)

5、开启adb服务,搜寻usb调试设备

在~/android/android-sdk-linux_x86-1.6_r1/tools下运行

$./adb kill-server

$./adb start-server

$./adb devices #列出所有已识别设备

List of devices attached

ZTE_SP920 device #这个就是我的手机usb设备了

安装一个apk试试吧

./adb install *.apk

在eclipse中也可以发现连接的手机设备,进行开发调试,当然前提是adb服务已经识别usb设备。

秀一张eclipse下调试android程序的图片:

注:获取设备的udev标识的方法多样, 上面介绍的方法只是其中一种,也是比较准确的一种 :)

如果你知道usb设备的设备文件,在获得idVendor时也可以使用其他命令,如:

udevinfo -a -p /sys/class/usb_device/...

udevinfo -e

而且在使用 udev 配置规则文件时可以使用任何一个参数来指定设备。

参考文章:

/sunblackshine/blog/item/9a95c9d201a06539960a163d.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。