我有一台运行Android 2.3.4的Nexus One手机。我正在尝试使用USB开放附件库构建应用程序。为此,我选择了Google API 10作为构建目标。该项目实际上是Microchip提供的应用程序,我知道该设备可以使用。我手动将应用程序的APK安装到手机上,它可以工作。现在我希望能够调试和修改应用程序。
当我按下“运行”按钮时,需要选择一个平台。 Android设备选择器窗口会在插入Nexus One时显示以下内容:
有什么想法吗?
谢谢,
编辑:我在Linux开发环境中工作。特别是Fedora 14。答案 0 :(得分:27)
解决方案是为设备创建一个udev规则。有关如何为特定供应商设备设置udev规则,请参阅http://developer.android.com/guide/developing/device.html#setting-up。
遵守规则。 Eclipse能够启动和调试。
答案 1 :(得分:12)
假设您使用的是Linux: 您的设备节点权限很可能是错误的。通过发出:
检查是否属实adb kill-server
sudo adb start-server
adb devices
在您的计算机上。这将以root身份启动adb-server。如果这项工作,如果您遗漏sudo
它不起作用,则您有权限问题。
解决方案取决于您的发行版和已安装的版本,请检查this blog entry,其中说明了如何为Ubuntu生成udev
文件。
答案 2 :(得分:4)
也可能是Nexus One没有USB供应商ID,其中Nexus One在adb / Eclipse中显示为“?????????”。因此,如果您希望它识别,那么您必须遵循以下步骤:
1. Follow the instructions at http://developer.android.com/guide/developing/device.html
2. Replace the vendor id of “0bb4″ with “18d1″ in /etc/udev/rules.d/51-android.rules.
Or add another line that reads:
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
3. restart computer or just "sudo service udev restart"
答案 3 :(得分:2)
将此文件复制到/etc/udev/rules.d /
中并重命名为“51-android.rules”并添加权限chmod a + r
#/etc/udev/rules.d/51-android.rules
#Acer
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666", GROUP="plugdev"
#ASUS
SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0666", GROUP="plugdev"
#Dell
SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0666", GROUP="plugdev"
#Foxconn
SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0666", GROUP="plugdev"
#Garmin-Asus
SUBSYSTEM=="usb", ATTR{idVendor}=="091e", MODE="0666", GROUP="plugdev"
#Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
#HTC
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"
#Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev"
#K-Touch
SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", MODE="0666", GROUP="plugdev"
#KT Tech
SUBSYSTEM=="usb", ATTR{idVendor}=="2116", MODE="0666", GROUP="plugdev"
#Kyocera
SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0666", GROUP="plugdev"
#Lenevo
SUBSYSTEM=="usb", ATTR{idVendor}=="17ef", MODE="0666", GROUP="plugdev"
#LG
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666", GROUP="plugdev"
#Motorola
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666", GROUP="plugdev"
#NEC
SUBSYSTEM=="usb", ATTR{idVendor}=="0409", MODE="0666", GROUP="plugdev"
#Nook
SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0666", GROUP="plugdev"
#Nvidia
SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0666", GROUP="plugdev"
#OTGV
SUBSYSTEM=="usb", ATTR{idVendor}=="2257", MODE="0666", GROUP="plugdev"
#Pantech
SUBSYSTEM=="usb", ATTR{idVendor}=="10a9", MODE="0666", GROUP="plugdev"
#Pegatron
SUBSYSTEM=="usb", ATTR{idVendor}=="1d4d", MODE="0666", GROUP="plugdev"
#Philips
SUBSYSTEM=="usb", ATTR{idVendor}=="0471", MODE="0666", GROUP="plugdev"
#PMC-Sierra
SUBSYSTEM=="usb", ATTR{idVendor}=="04da", MODE="0666", GROUP="plugdev"
#Qualcomm
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666", GROUP="plugdev"
#SK Telesys
SUBSYSTEM=="usb", ATTR{idVendor}=="1f53", MODE="0666", GROUP="plugdev"
#Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
#Sharp
SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666", GROUP="plugdev"
#Sony
SUBSYSTEM=="usb", ATTR{idVendor}=="054c", MODE="0666", GROUP="plugdev"
#Sony Ericsson
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666", GROUP="plugdev"
#Teleepoch
SUBSYSTEM=="usb", ATTR{idVendor}=="2340", MODE="0666", GROUP="plugdev"
#Toshiba
SUBSYSTEM=="usb", ATTR{idVendor}=="0930", MODE="0666", GROUP="plugdev"
#ZTE
SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0666", GROUP="plugdev"
答案 4 :(得分:1)
您可以输入sdk / platform-tools并在Ubuntu中使用su运行。 然后杀死并重新启动adb服务。
现在可以识别设备名称。
答案 5 :(得分:1)
尝试以上都没有工作..当我从MTP切换到相机(PTP)时终于工作了。
答案 6 :(得分:0)
试试这个:
./adb kill-server &&
sudo ./adb devices
答案 7 :(得分:-1)