Невозможно протестировать приложение для Android непосредственно на устройстве Android вместо симулятора Android - PullRequest
1 голос
/ 05 марта 2012

привет, я разработал небольшое приложение для Android. Я хочу запустить его на устройстве Android. Я скопировал .apk и запустил на моем устройстве Android, оно работает нормально. Но я не хочу каждый раз копировать файл .apk при изменениимой код. Я просто хочу запустить его на своем мобильном устройстве через опцию Titanium Run -> Android Device. Я уже установил идентификатор продавца для своего устройства.Когда я пытался запустить свое приложение на устройстве Android, я получаю сообщение об ошибке с недостаточными разрешениями для устройства. Я сохраняю включенную отладку USB на своем устройстве.Я также пытался решить проблемы с ADB.

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

, но он показывает мне

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

Я проверяю в DDMS, но это не показывает мое устройство. Он показывает мой симулятор, но не устройство.Он показывает один значок устройства с именем как ????????и неизвестно, так есть ли способ решить эту проблему. Спасибо.

Ответы [ 2 ]

0 голосов
/ 21 ноября 2014

РЕДАКТИРОВАТЬ - НОВЫЙ ОТВЕТ

Я снова открыл эту проблему, и sth был обеспокоен запуском adb в режиме root.Итак, когда я подключил Sony 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
...

, я увидел идентификатор поставщика, подключенный к Sony Z1.Он сказал, что 0fce был его поставщиком.Проверка страницы Google здесь Я заметил, что между Sony и Sony Ericsson есть разница.

При проверке правил udev оказалось, что внутри у меня был идентификатор поставщика Sony (который равен 054c).) вместо Sony Ericsson (который 0fce).Изменение этого кода в udev заставило его работать.

mdzeko@pc ~ $ cat /etc/udev/rules.d/51-android.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666", GROUP="plugdev"

СТАРЫЙ ОТВЕТ

Хорошо, после нескольких часов поиска, я нашел решение.Может быть, это относится и к вам.

Я использовал Sony Z1 на Linux Mint.Это выдало мне ту же ошибку при попытке подключить его к USB.Вот что я сделал:

  1. Добавьте правило udev, следуя ОЧЕНЬ простому учебнику здесь

  2. запустите adb kill-server

  3. В опциях разработчика на устройстве может быть указана опция Revoke USB debugging authorization....Вы можете пройти через эту опцию.Если такой опции нет, не обращайте внимания, перейдите к следующему шагу.

  4. Выполните sudo adb usb или sudo adb start-server

  5. Если не было сохранено разрешение на использование этого устройства, на устройстве появится диалоговое окно с просьбой предоставить разрешение.Выберите опцию, предоставляющую вам разрешение.

Вот и все, ваше устройство должно работать.Если этого не произойдет, прокомментируйте ниже, и я попытаюсь понять, почему.

PS Я признаю, что запускать adb от имени root - плохая практика, но я не смог заставить его работать без него.При переключении на некорневый adb я снова получил ту же ошибку.

0 голосов
/ 05 марта 2012

У вас нет прав доступа к вашему устройству. Попробуйте добавить что-то подобное в какой-нибудь файл (обычно 51-android.rules) в /etc/udev/rules.d:

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

Замените my-user-name и XXXX идентификатором поставщика вашего устройства, который вы можете найти с помощью

   $ lsusb

Затем перезапустите udev

   $ sudo service udev restart

Наконец, добавьте идентификатор поставщика в ~/.android/adb_usb.ini:

 # USB devices
 0xXXXX
...