【问题标题】:Debugging Android App on Device在设备上调试 Android 应用
【发布时间】:2011-12-27 13:39:20
【问题描述】:

我知道对此有很多问题,但没有一个对我的情况有所帮助。我正在运行 Ubuntu 11.10,并且正在尝试在我的 LG 手机上调试应用程序。我遵循了这个指南:http://developer.android.com/guide/developing/device.html

我在手机上启用了 USB 调试,在清单中将项目设置为可调试,并编辑了 /etc/udev/rules.d/51-android.rules 规则文件。这是文件的内容:

SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666", GROUP="plugdev" 

1004 是 LG 的供应商 ID。设备已安装;我可以在我的文件系统中访问它,并且 USB 安装指示器在通知区域中。当我运行 adb devices 时,没有列出手机,只有模拟器。它在 Eclipse 中也无法识别。如何让 Eclipse 识别我的设备?

【问题讨论】:

  • 是的。这是另一个不能在 64 位版本上正常工作的东西吗?

标签: android debugging


【解决方案1】:

这是我为所有 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

希望对你有帮助。

【讨论】:

  • 谢谢。这比手动硬编码要好得多。我会运行这个,希望我不必再担心它了。
  • 如果您运行的 Ubuntu(新/旧)版本与此脚本不同,您可能需要更改 ##-android.rules 的编号。如果您打开/etc/udev/rules.d/,那里应该已经有一两个规则文件,只需遵循该文件夹中已有的命名约定即可。
【解决方案2】:

我发现了我的问题。 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/。不过感谢您的回答。

【讨论】:

    【解决方案3】:

    您应该为您的设备安装 USB 驱动程序(即使您可以访问您的文件系统)。也许它是一个标准驱动程序,允许您在手机上使用 SD 卡(仅此而已)。

    【讨论】:

      【解决方案4】:

      尝试为 LG for Ubuntu 搜索通用 adb 驱动程序,安装它们,重新启动并连接您的手机。然后转到终端,使用 adb 导航到文件夹并使用以下命令查看您的设备是否被识别:

      ./adb devices
      

      如果它显示您的设备,则可以与 android sdk 一起使用。

      【讨论】:

        【解决方案5】:

        在 64 位 Ubuntu 上还有一个额外的步骤: apt-get 安装 ia32-libs

        也许这就是问题所在?

        【讨论】:

        • 这之前是个问题,但是我在安装 SDK 时安装了那个库。
        猜你喜欢
        • 2013-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-29
        • 1970-01-01
        相关资源
        最近更新 更多