嗨我开发了小型Android应用程序。我想在Android设备上运行它。我复制.apk并在我的Android设备上运行它工作正常。但我不想每次都复制更改我的代码时的.apk文件。我只想通过Titanium Run直接在我的移动设备上运行它 - > Android设备选项。我已经为我的设备设置了供应商ID。当我试图在Android设备上运行我的应用程序时,它给了我错误的设备权限。我在我的设备上保持USB调试启用。我还试图解决adb问题。
cd android-sdk-linux-linux/tools
./adb kill-server
./adb start-server
./adb devices
但它告诉我
List of devices attached
???????????? no permissions
我检查DDMS,但它没有显示我的设备。它显示我的模拟器但不显示设备。它显示一个设备图标,名称为????????还有未知的,有什么方法可以解决这个问题。谢谢。
答案 0 :(得分:0)
您没有权限访问您的设备。
尝试在/etc/udev/rules.d
中添加类似这样的文件(通常是51-android.rules):
SUBSYSTEM=="usb",SYSFS{idVendor}=="XXXX",MODE="0600",SYMLINK+="mydev-%n",OWNER="my-user-name"
将my-user-name
和XXXX
替换为您可以使用
$ lsusb
然后重启udev
$ sudo service udev restart
最后,将供应商ID添加到~/.android/adb_usb.ini
:
# USB devices
0xXXXX
答案 1 :(得分:0)
编辑 - 新答案
我重新打开了这个问题,并且在以root模式启动adb方面很可疑。所以,当我插入索尼Z1时,我运行
mdzeko@pc ~ $ lsusb
...
Bus 001 Device 011: ID 0fce:519e Sony Ericsson Mobile Communications AB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
...
Automaticaly,我看到供应商ID连接到Sony Z1。它说0fce
是它的供应商ID。检查谷歌页面here我注意到索尼和索尼爱立信之间存在差异。
检查我的udev规则,结果发现里面我有索尼供应商ID(054c
)而不是索尼爱立信(0fce
)。在udev中更改该代码使其工作。
mdzeko@pc ~ $ cat /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666", GROUP="plugdev"
OLD ANSWER
好的,经过几个小时的研究,我找到了一个解决方案。也许它也适用于你。
我在Linux Mint上使用Sony Z1。尝试将其连接到USB时,它给了我同样的错误。这就是我所做的:
通过以下非常简单的教程here
udev
规则
运行adb kill-server
设备上的开发者选项中可能有一个选项Revoke USB debugging authorization...
。您可以使用该选项。如果没有这样的选项,请不要介意,跳到下一步。
运行sudo adb usb
或sudo adb start-server
如果没有使用该设备保存的权限,您将在设备上有一个对话框,要求您授予该权限。选择授予您权限的选项。
就是这样,你的设备应该可以工作。如果它仍然没有,请在下面提交,我将尝试查明原因。
P.S。我承认以root身份运行adb是不好的做法,但如果没有它,我无法让它工作。通过切换到非root adb,我再次遇到了同样的错误。