2012-03-05 59 views
1

您好我已經開發了小型Android應用程序。我想在android設備上運行它。我複製了.apk並在我的android設備上運行,它工作正常。但我不我不想在每次更改我的代碼時複製.apk文件。我只是想通過鈦運行 - > Android設備選項直接在我的移動設備上運行它。我已經爲我的設備設置了供應商ID。當我嘗試在android設備上運行我的應用程序時,它給我錯誤的設備權限不足。我在設備上保持啓用USB調試。我也嘗試解決adb問題。無法直接在android設備上測試android應用程序而不是android模擬器

cd android-sdk-linux-linux/tools 
./adb kill-server 
./adb start-server 
./adb devices 

但它表明我

List of devices attached 
???????????? no permissions 

我檢查在DDMS,但它顯示的不是device.It顯示我的模擬器,但不device.It顯示了名稱作爲一個設備圖標???? ????還有未知數,所以有什麼方法可以解決這個問題。謝謝。

+0

我知道這是一個愚蠢的解決方案,但嘗試重新啓動您的手機。這發生在我身上很多次,但是當我重新啓動手機並將手機連接到eclipse時,它會顯示我的設備。 – 2012-03-05 06:12:32

+0

謝謝Rashmi的快速回復。我也嘗試過這個解決方案,但它不適合我,我正在使用Titanium studio而不是eclipse。是否需要從root啓動eclipse或Titanium工作室。我使用的是Ubuntu 10.4驅動器是必需的? – nilkash 2012-03-05 06:17:35

+0

在您的設備上進入設置 - >應用程序 - >開發 - >從其他來源檢查安裝是允許的,第二次檢查應用程序調試已啓用 – Vinay 2012-03-05 06:19:01

回答

0

您沒有權限訪問您的設備。 嘗試在/etc/udev/rules.d加入這樣的一些文件(通常是51 android.rules):

SUBSYSTEM=="usb",SYSFS{idVendor}=="XXXX",MODE="0600",SYMLINK+="mydev-%n",OWNER="my-user-name" 

您的設備的供應商ID,你可以找到使用替換my-user-nameXXXX

$ lsusb 

然後,重新啓動的udev

$ sudo service udev restart 

最後,供應商ID添加到~/.android/adb_usb.ini

# USB devices 
0xXXXX 
+0

嗨dtmilano,謝謝你reply.I試過你的解決方案,但它仍然沒有爲我工作。我修改51-android.rules文件與我的供應商ID和添加供應商ID在adb_usb.ini file.But它不工作。 – nilkash 2012-03-05 11:09:30

+0

嘗試確定哪個部分無法正常工作:查看是否檢測到您的設備,是否創建了設備節點等 – 2012-03-05 15:05:57

0

編輯 - 新的答案

我重新打開這一問題,某事是有鬼根模式啓動ADB。所以,當我插入索尼Z1,我運行

[email protected] ~ $ 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連接到索尼Z1。它說0fce是它的供應商ID。檢查谷歌頁面here我注意到索尼和索尼愛立信有區別。

檢查我的udev規則,事實證明,我有索尼供應商ID(這是054c),而不是索尼愛立信(這是0fce)。更改udev中的代碼使其工作。

[email protected] ~ $ cat /etc/udev/rules.d/51-android.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666", GROUP="plugdev" 

OLD ANSWER

好,幾個小時resarch後,我想出一個解決方案。也許它會適用於你。

我在Linux Mint上使用Sony Z1。它試圖連接到USB時給了我同樣的錯誤。這是我做了什麼:

  1. 由如下因素非常簡單的教程添加udev規則here

  2. 運行adb kill-server

  3. 有可能是在設備上的開發者選項說的選項Revoke USB debugging authorization...。你可以通過這個選項。如果沒有這樣的選項,不要緊,跳到下一步。

  4. 運行sudo adb usbsudo adb start-server

  5. 如果沒有使用保存該設備的許可,您將有設備要求您授予權限上的對話框。選擇授予您權限的選項。

就是這樣,你的設備應該工作。如果它仍然沒有,下面的提交,我會試着看看爲什麼。

P.S.我承認以root用戶身份運行adb是一種不好的做法,但如果沒有它,我無法實現它。通過切換到非根adb,我又得到了同樣的錯誤。

相關問題