在设备上调试Android应用程序
我知道有很多关于这方面的问题,但没有一个帮助我的情况。我正在运行Ubuntu 11.10,并且正在尝试调试我的LG手机上的应用程序。我遵循本指南:http://developer.android.com/guide/developing/device.html在设备上调试Android应用程序
我在手机上启用了USB调试,将项目设置为清单中的debuggable,然后编辑/etc/udev/rules.d/51-android.rules规则文件。以下是该文件的内容:
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666", GROUP="plugdev"
1004是LG的供应商ID。该设备已安装;我可以在我的文件系统中访问它,并且USB安装的指示灯位于通知区域。当我运行adb设备时,手机没有列出,只有模拟器。它在Eclipse中也不被识别。我怎样才能让Eclipse识别我的设备?
这是我最终的脚本,为所有Android设备添加规则。您应该删除您的XX-android.rules文件,如果你写的,并使用sudo使这个:
#!/bin/bash
android_SDK=$1
if [[ $android_SDK == "" ]]
then
echo 'usage: sudo add_device_rules_to_unix.sh /android-SDK/platform-tools/dir/path'
exit
fi
PATH=$PATH:$android_SDK
rules_file="/etc/udev/rules.d/99-android.rules"
# Adding rules to 99-android.rules file
echo '# Acer
SUBSYSTEM=="usb", SYSFS{idVendor}=="0502", MODE="0666"
# Dell
SUBSYSTEM=="usb", SYSFS{idVendor}=="413c", MODE="0666"
# Foxconn
SUBSYSTEM=="usb", SYSFS{idVendor}=="0489", MODE="0666"
# Garmin-Asus
SUBSYSTEM=="usb", SYSFS{idVendor}=="091E", MODE="0666"
# Google
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
# HTC
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
# Huawei
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", MODE="0666"
#Kyocera
SUBSYSTEM=="usb", SYSFS{idVendor}=="0482", MODE="0666"
# LG
SUBSYSTEM=="usb", SYSFS{idVendor}=="1004", MODE="0666"
# Motorola
SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666"
# Nvidia
SUBSYSTEM=="usb", SYSFS{idVendor}=="0955", MODE="0666"
# Pantech
SUBSYSTEM=="usb", SYSFS{idVendor}=="10A9", MODE="0666"
# Samsung
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"
# Sharp
SUBSYSTEM=="usb", SYSFS{idVendor}=="04dd", MODE="0666"
# Sony Ericsson
SUBSYSTEM=="usb", SYSFS{idVendor}=="0fce", MODE="0666"
# ZTE
SUBSYSTEM=="usb", SYSFS{idVendor}=="19D2", MODE="0666"' > $rules_file
# Applying rules and restarting adb
chmod a+r $rules_file
service udev restart
adb kill-server
adb start-server
希望它可以帮助你。
谢谢。这比手动对其进行硬编码要好得多。我会运行这个,希望我不必再担心它。 – Matt 2011-12-27 05:41:41
如果您运行的是不同于此脚本的Ubuntu版本(新版本/旧版本),则可能需要更改'## - android.rules'的编号。如果打开'/ etc/udev/rules.d /',应该已经有一个或两个规则文件,只需按照该文件夹中的命名约定。 – retrohacker 2012-07-21 03:02:12
您应该为您的设备安装usb驱动程序(即使您有权访问您的文件系统)。也许它是一个非标准的驱动程序,它允许你在你的手机上使用SD卡(但没有其他)。
尝试搜索LG for Ubuntu的通用adb驱动程序,安装它们,重新启动并连接手机。然后进入终端,导航与亚行到文件夹并使用下面的命令来查看设备是否认可:
./adb devices
如果它显示你的设备,它已准备好与Android SDK中使用。
我发现我的问题。 Android指南说,要命名udev文件51-android.rules。但对于较新版本的Ubuntu(Karmic和更早版本),它需要名称为70-android.rules。这是我遵循的教程:http://esausilva.com/2010/05/13/setting-up-adbusb-drivers-for-android-devices-in-linux-ubuntu/。尽管感谢您的答案。
它是64位的Ubuntu? – barry 2011-12-26 20:49:44
是的。这是否与64位版本无法正常工作? – Matt 2011-12-26 21:01:44