我使用的是三星galaxy nexus手机(Android 4.0平台)。
我正在开发Ubuntu linux操作系统上的Android应用程序。我想直接在三星手机设备上运行我的应用程序,所以我执行了以下设置步骤:
在我的项目AndroidManifest.xml文件中,添加android:debuggable="true"到<application>元素
在设备的“设置”中,>安全启用未知源
在设备上,在设置>开发人员选项中启用了USB调试
在我的电脑上,创建了/etc/udev/rules.d/51-android.rules文件,内容如下:
子系统=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="插件开发"
在我的电脑上,执行chmod a+r /etc/udev/rules.d/51-android.rules命令
然后,在我的电脑上,我打开一个终端,执行adb设备命令,我得到:
List of devices attached
???????????? no permissions
因为我没有看到我的设备,但只有????????????没有权限,然后运行以下命令:
adb kill-server
adb start-server
adb devices
但我还是有:
List of devices attached
???????????? no permissions
为什么?我错过了什么?
不管怎样,我解决这个问题的方法(在Ubuntu上)。
定义了在什么情况下需要运行这些命令。对于大多数ubuntu用户来说,有一个主文件夹(隐藏文件.bashrc)。
您可以在其中记录这些命令的启动。但是当您在控制台中输入bash命令时,这些命令将被触发。
因为我有一个shell .zshrc,然后我做了以下工作:
打开控制台:gedit .zshrc
当文件打开时,添加以下一行:
./.add_device_permissions.sh
在此之前或之后,我们需要创建这个文件:.add_device_permissions.sh,我们在其中写入以下内容:
#!/bin/bash
# Add permissions
ADB="/home/vadimm/Android/Sdk/platform-tools/adb"
$ADB devices
$ADB kill-server
cat .permissions_redmi_note | sudo -S $ADB devices
$ADB kill-server
cat .permissions_redmi_note | sudo -S $ADB devices
我们还需要创建.permissions_redmi_note,在这里我们需要硬编码我们的密码。
不要添加到文件.zshrc不必要,我们可以在启动系统本身时指定路径:Startup Applications Preferences
我们按下“添加”并写入我们的命令:/home/vadim /.add_device_permissions.sh
你也可以尝试在命令行下一个命令:
亚行。/设备
亚行kill-server。/
Sudo ./adb设备
亚行kill-server。/
亚行。/设备
我的Galaxy S3也遇到了同样的问题。
我的问题是idVendor值04E8不是正确的。
要找到正确的,请将智能手机连接到计算机,并在终端中运行lsusb。它会像这样列出你的智能手机:
Bus 002 Device 010: ID 18d1:d002 Google Inc.
所以正确的idVendor值是18d1。/etc/udev/rules.d/51-android.rules中的行必须是:
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
然后我运行sudo udevadm control—reload-rules,一切都工作了!