2013-06-22 4 views
5

У меня никогда не было проблем с загрузкой моих приложений на устройствах (Galaxy SPlus и Nexus 10), но по неизвестной причине теперь загрузка APK на моем Nexus 10 занимает возраст ... на 20 раз я пытался, я дошел до конца только один раз.Adb install/upload of apk принимает возраст

Кто-нибудь знает, как я могу отлаживать/дополнять APK, чтобы узнать, с какой скоростью он идет? Я не знаю, как загружается APK, может кто-нибудь дать мне подсказку, где искать? Я хочу расследовать, но я не знаю, что делать?

Устройство правильно реагирует на команды adb, я вижу его под Eclipse, я могу загружать/загружать файлы с помощью DDSS-файла, все работает как обычно, но при запуске/отладке моего приложения Eclipse застревает на " Загрузка my-application.apk на устройство «R32D1035MCE».

Не могли бы вы помочь?

EDIT:

Я сброшена мое устройство к заводским установкам, он не делает никакой помощи.

Кроме того, я включил трассировки с ADB_TRACE = все в настройках моей среды, а трассировка показывает, что adb что-то ждет, но у меня нет подсказки.

EDIT:

Тем не менее исследования, мой Nexus 10 работает снова, а потом вдруг перестал работать. В журнале DDMS, у меня есть следующее сообщение об ошибке:

[2013-06-23 01:09:30 - ddmlib] An established connection was aborted by the software in your host machine 
java.io.IOException: An established connection was aborted by the software in your host machine 
    at sun.nio.ch.SocketDispatcher.write0(Native Method) 
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51) 
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:89) 
    at sun.nio.ch.IOUtil.write(IOUtil.java:60) 
    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:450) 
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213) 
    at com.android.ddmlib.Client.sendAndConsume(Client.java:607) 
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348) 
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:453) 
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:835) 
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:803) 
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:621) 
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44) 
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:580) 

Похоже, связанные с этой проблемой: An established connection was aborted by the software in your host machine

Но ни одно из решений, приведенных не работает для меня.

Есть ли способ сбросить сетевое соединение, которое делает adb с устройством?

EDIT: решение было найдено, как было предложено chris-stratton, используя «adb install -r package.apk», использование -r командного переключателя, который заставляет повторную установку разблокировать замороженное состояние устройства.

+1

Возможно, это не установка, требующая времени, а для того, чтобы машина разработки реализовала ее. Попробуйте adb install -r your.package.apk из терминала командной строки. Возможно, файл .apk находится в папке bin/вашего проекта. –

+0

также попробуйте вернуть устройство к заводским настройкам по умолчанию –

+0

Я сбросил устройство до заводских настроек, но это не поможет. Это была моя лучшая удача. Он по-прежнему отлично работает с другим устройством, поэтому я предполагаю, что это что-то в настройке или кеше установки adb на моем ПК. –

ответ

7

Хорошо, я наконец нашел ответ. Причина в том, что я использовал еще один мини-USB-кабель, чем тот, который поставляется с устройством Nexus. Я воспроизвожу его на 100%.

Когда я использую кабель от своего Galaxy SPlus, Nexus не хочет загружать файл (даже если устройство распознано и все кажется прекрасным). Загрузка никогда не заканчивается.

И обратное верно также при использовании USB-кабеля моего Nexus 10 с моим Galaxy SPlus, на этот раз само устройство не распознается.

Я пробовал это на двух разных компьютерах. Я думал, что мини-USB-кабели совместимы. Но нет. Ответ у меня нет: почему?

+0

Можете ли вы измерить сопротивление кабеля? – MickLH

+0

Я не знаю, как это сделать. –

+1

Как отметил @Donovanr, изменение порта USB сделало это для меня – Sreekanth

1

Я не знаю, как контролировать скорость загрузки APK, поэтому следующее не ускорит передачу, но если вы имеете в виду, что передача не выполняется из-за тайм-аута, вы можете изменить это значение в Window->Preferences->Android->DDMS->ADB Connection time out.

Шахта настроена на 10000 (это 10 секунд) и редко терпит неудачу.

Но ни одно из предложенных решений не работает для меня.

Есть много там, какие из них вы пытались, поэтому мы знаем, что не предлагаем их?

Есть ли способ сбросить сетевое соединение, которое делает adb с устройством?

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

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

Кроме того, работает ли загрузка других приложений? Если у вас есть только один проект в рабочей области, попробуйте File -> New -> Other -> Android -> Android Sample Project (любой из них).

+0

Я изменил настройку тайм-аута на 10 секунд, и после этого времени он отключается. –

+0

У меня есть эта проблема во многих моих проектах Android, она не связана с этим приложением. Я также попытался включить/выключить режим отладки USB, а также попытался выполнить полную перезагрузку устройства. Я даже сбросил его до заводских настроек. –

3

Небольшое изменение в разном решении USB-кабеля заключается в том, что я просто переключил USB-порты; задача решена. Это было даже после перезагрузки как моего рабочего стола, так и телефона недостаточно.

0

Я столкнулся с этой проблемой. После того, набрав на команду окон: ADB устройств, есть (по крайней мере) 2 возможности:

  1. Список устройств, подключенных 41006XXXXXXX устройств
  2. список устройств прикреплены 41006cXXXXXX несанкционированного

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