При попытке установить .apk из Eclipse, будь то эмулятор orroid или физическое устройство (через USB), я получаю сообщение об ошибке "Ошибка установки *.apk на устройстве * *: таймаут". .apk не найден на эмуляторе или физическом устройстве (Samsung Galaxy S2, корневой).
Если я избегу eclipse и просто использую командную строку, я также не могу установить .apk.
Зачем нужен новый пост?
Есть несколько других сообщений stackoverflow, которые ссылаются на ошибку "Не удалось установить...". Я создал новое сообщение по нескольким причинам:
- Большинство других сообщений не указаны.
- Значительное релевантное сообщение, Ошибка Android: Не удалось установить *.apk на устройстве *: тайм-аут, для исходного плаката, применяется только к соединениям физического устройства. Так что это другой случай, хотя и с аналогичными симптомами.
- Все кандидатские решения в этой статье и некоторые другие, я пробовал. Они перечислены ниже в разделе "Решения для кандидатов, которые я пробовал".
Эта запись длинна, так как шаги, которые я предпринял, являются длительными, так как это было гарантировано ошибкой. Если вы не хотите читать или, по крайней мере, сканировать этот пост, пожалуйста, не комментируйте.
Моя окружающая среда
ОСНОВНАЯ ОС: Windows XP SP3
JAVA: Java SDK версия 1.6.0_32
ОКНА ОКРУЖАЮЩЕЙ СРЕДЫ:
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_33;
PATH=...;%JAVA_HOME%\bin\;C:\android\android-sdk\tools;C:\android\android-sdk\platform-tools\;...;C:\Program Files\apache-ant-1.8.2\bin;...;
IDE: Eclipse (установлен классический) Indigo. Версия 3.7.2
ANDROID SDK
- Android SDK Tools Revision: 20. (В основном проверено с версией 19).
- Платформа для Android SDK: 11.
- Плагин ADT ( "Android Development Toolkit", Eclipse Plugin) версия: 20.0.0.v201206010423-369331 (также с предыдущей версией 18.0.0.v201203301501-306762).
- Платформа, ориентированная на ваш проект и версию платформы, запущенной в эмуляторе. Пробовал каждый:
- Android 4.0.3 (API 15)
- Android 2.2 (API 8)
- Andorid 2.1 (API 7)
MOBILE: Samsung Galaxy S2 работает под управлением Android Ice Cream Sandwhich (ICS) 4.0.3
ANT: 1.8.2
Шаги, которые я запускаю для получения ошибок.
Использование Eclipse для установки .apk в эмулятор:
- Откройте eclipse (который загружает мое рабочее пространство с помощью одного приложения для Android).
- Запустите мое приложение Android с использованием ранее настроенной конфигурации запуска.
- Запускается "Выбор устройства Android" (я установил мою конфигурацию запуска для запуска этого вручную).
- В устройстве Android Device Chooser я выбираю свой avd (таргетинг на Android 2.2) и нажимаю OK.
- Эмулятор открывается с помощью "5554: jlbavd2_2". Мое имя AVD - "jlbavd2_2".
- Я оставляю эмулятор открытым. В Eclipse я открываю представление DDMS. В области "Устройства" я нажимаю на белый треугольник и выбираю "Reset adb".
В консоли Eclipse, в представлении Android, я получаю
[2012-06-19 19:20:52 - MyApp] Starting full Post Compiler.
[2012-06-19 19:20:52 - MyApp] ------------------------------
[2012-06-19 19:20:52 - MyApp] Android Launch!
[2012-06-19 19:20:52 - MyApp] adb is running normally.
[2012-06-19 19:20:52 - MyApp] Performing au.com.myorg.myapp.MyAppActivity activity launch
[2012-06-19 19:20:52 - MyApp] Refreshing resource folders.
[2012-06-19 19:20:52 - MyApp] Starting incremental Pre Compiler: Checking resource changes.
[2012-06-19 19:20:52 - MyApp] Nothing to pre compile!
[2012-06-19 19:20:53 - MyApp] Starting incremental Package build: Checking resource changes.
[2012-06-19 19:20:53 - MyApp] Skipping over Post Compiler.
[2012-06-19 19:20:59 - MyApp] Launching a new emulator with Virtual Device 'jlbavd'
[2012-06-19 19:22:29 - MyApp] New emulator found: emulator-5554
[2012-06-19 19:22:29 - MyApp] Waiting for HOME ('android.process.acore') to be launched...
[2012-06-19 19:22:44 - MyApp] HOME is up on device 'emulator-5554'
[2012-06-19 19:22:44 - MyApp] Uploading MyApp.apk onto device 'emulator-5554'
[2012-06-19 19:22:49 - MyApp] Failed to install MyApp.apk on device 'emulator-5554': timeout
[2012-06-19 19:22:49 - MyApp] Launch canceled!
В консоли Eclipse, вывод DDMS, я получаю:
...
[2012-06-19 19:22:44 - ddm-hello] handling HELO
[2012-06-19 19:22:44 - ddm-hello] HELO: v=1, pid=150, vm='Dalvik v1.2.0', app='android.process.acore'
[2012-06-19 19:22:44 - MyApp.apk] Uploading MyApp.apk onto device 'emulator-5554'
[2012-06-19 19:22:44 - Device] Uploading file onto device 'emulator-5554'
[2012-06-19 19:22:49 - ddms] write: timeout
[2012-06-19 19:22:49 - Device] Error during Sync: timeout.
[2012-06-19 19:22:49 - ddms] Removing req 0x4000002d from set
Иногда (возможно, я делаю несколько разные шаги), я получаю:
[2012-06-16 14:20:02 - MyFirstApp02] Starting full Post Compiler.
[2012-06-16 14:20:02 - MyFirstApp02] ------------------------------
[2012-06-16 14:20:02 - MyFirstApp02] Android Launch!
[2012-06-16 14:20:02 - MyFirstApp02] adb is running normally.
[2012-06-16 14:20:02 - MyFirstApp02] Performing au.com.myorg.MyFirstApp02Activity activity launch
[2012-06-16 14:20:08 - MyFirstApp02] Launching a new emulator with Virtual Device 'jlbavd2_2'
[2012-06-16 14:20:17 - Emulator] bind: Unknown error
[2012-06-16 14:20:17 - MyFirstApp02] New emulator found: emulator-5556
[2012-06-16 14:20:17 - MyFirstApp02] Waiting for HOME ('android.process.acore') to be launched...
[2012-06-16 14:20:38 - MyFirstApp02] HOME is up on device 'emulator-5556'
[2012-06-16 14:20:38 - MyFirstApp02] Uploading MyFirstApp02.apk onto device 'emulator-5556'
[2012-06-16 14:20:50 - MyFirstApp02] Failed to install MyFirstApp02.apk on device 'emulator-5556': timeout
[2012-06-16 14:20:50 - MyFirstApp02] Launch canceled!
Обратите внимание на "bind: Unknown error". Иногда эта ошибка случается, иногда это не так.
Если я отключу свой кабель ethernet на моем аппаратном маршрутизаторе, я получаю следующее:
[2012-06-19 23:27:29 - MyApp] Android Launch!
[2012-06-19 23:27:29 - MyApp] adb is running normally.
[2012-06-19 23:27:29 - MyApp] Performing au.com.softmake.myapp.MyAppActivity activity launch
[2012-06-19 23:27:29 - MyApp] Refreshing resource folders.
[2012-06-19 23:27:29 - MyApp] Starting incremental Pre Compiler: Checking resource changes.
[2012-06-19 23:27:29 - MyApp] Nothing to pre compile!
[2012-06-19 23:27:33 - MyApp] Launching a new emulator with Virtual Device 'jlbavd'
[2012-06-19 23:27:40 - Emulator] Warning: No DNS servers found
[2012-06-19 23:27:44 - Emulator] emulator: emulator window was out of view and was recentered
[2012-06-19 23:27:44 - Emulator]
[2012-06-19 23:28:29 - MyApp] New emulator found: emulator-5554
[2012-06-19 23:28:29 - MyApp] Waiting for HOME ('android.process.acore') to be launched...
[2012-06-19 23:28:36 - MyApp] HOME is up on device 'emulator-5554'
[2012-06-19 23:28:36 - MyApp] Uploading MyApp.apk onto device 'emulator-5554'
[2012-06-19 23:28:42 - MyApp] Failed to install MyApp.apk on device 'emulator-5554': timeout
[2012-06-19 23:28:42 - MyApp] Launch canceled!
Обратите внимание на "Предупреждение: DNS-серверы не найдены"
Использование Eclipse для установки .apk на физическое устройство (встроенный Samsung Galaxy S2. 4.0.3 с включенной отладкой USB), и после прохождения аналогичных шагов, как описано выше, я попал в консоль Eclipse, выход Android:
[2012-06-15 22:40:34 - MyFirstApp] Starting full Post Compiler.
[2012-06-15 22:40:34 - MyFirstApp] ------------------------------
[2012-06-15 22:40:34 - MyFirstApp] Android Launch!
[2012-06-15 22:40:34 - MyFirstApp] adb is running normally.
[2012-06-15 22:40:34 - MyFirstApp] Performing
au.com.myorg.myfirstapp.MyFirstAppActivity activity launch
[2012-06-15 22:40:39 - MyFirstApp] Uploading MyFirstApp.apk onto device '0019adf659f24e'
[2012-06-15 22:40:51 - MyFirstApp] Failed to install MyFirstApp.apk on device '0019adf659f24e': timeout
[2012-06-15 22:40:51 - MyFirstApp] Launch canceled!
Такая же ошибка, как при попытке установить в эмулятор.
При использовании только командной строки и тем самым избегая Eclipse, я выполняю следующие шаги:
-
Откройте командную строку Windows в моем рабочем каталоге (я использую C:\Data\Sda\Code\Mobile\Android\Examples > ").
Цели списка андроидов.
-
Я получаю свой целевой идентификатор (я выбираю Android 2.2).
android create project --target 3 --name MyAppCmd --path./MyAppCmd - активность MyAppCmdActivity --package au.com.myorg.myappcmd
-
Я получаю серию здоровых результатов "Созданный каталог проектов...", "Добавленный файл..."
- В Windows дважды нажмите "AVD Manager.exe".
- Я запускаю свой avd (который нацелен на Android 2.2)
-
Вернуться в окно командной строки
cd MyAppCmd
ant debug
-
После списка результатов я получаю "BUILD SUCCESSFUL..." (по предыдущему случаю мне пришлось редактировать C:\android\android-sdk\platform-tools\dx.bat для изменения "set defaultXmx = -Xmx1024M", чтобы установить значение по умолчаниюMx = -Xmx512M, чтобы сделать сборку успешной). Я заметил, что bin/MyAppCmd-debug.apk существует.
-
Я пытаюсь установить с помощью
adb install bin/MyAppCmd-debug.apk
-
Вывод:
* daemon not running. starting it now on port 5037 * * daemon started successfully * error: device offline
adb
List of devices attached emulator-5554 device
adb install bin/MyAppCmd-debug.apk
-
В командном окне нет выходных данных. Нет сообщения об ошибке. Просто мигающий курсор, сообщение об ошибке или успешное сообщение и не возвращаются в командную строку " > ".
-
Я завершаю командную строку и открываю новую.
-
Я получаю тот же результат (мигающий курсор и т.д.), если я попробую команду push (temp.txt был ранее создан в моей системе Windows)...
adb push temp.txt/sdcard/temp.txt
Решения для кандидатов, которые я пробовал
Связанное с Eclipse:
- Последующие шаги из Eclipse не разговаривает с эмулятором
- Увеличено время подключения к ADB. Eclipse > Окно > Настройки > Android > DDMS > "Время соединения ADB (ms):" = 10000 (я также пробовал 60000).
- Запуск приложения дважды (и выбор текущего запущенного эмулятора или мобильного телефона).
- Убрал мой проект: Eclipse > Project > Clean...
- Перезагрузка Eclipse.
- Ускоренное Затмение от Индиго (2.7.x) до Гелиоса (2.6.x).
Android:
- Reset adb несколькими способами: "Reset ADB" с точки зрения Eclipse DDMS (из треугольника окна "Устройства" ); командной строки с "adb kill-server" и "adb start-server"; и с помощью диспетчера задач Windows, чтобы убить adb.exe.
- Переустановка моих USB-драйверов Samsung OEM (с помощью KIES > Инструменты > Устранение ошибки подключения).
- Установка моего Android SDK в каталог без пробелов в любом месте пути. А именно C:\Android\android-sdk. Это повлекло за собой переустановку SDK, ранее находившегося в папке C:\Program\Android\android-sdk
- Мой Android-проект установлен в каталог без пробелов в любом месте пути.
- Удаление и повторное создание avd (как из Android AVD Manager, так и с помощью проводника Windows).
- Использование разных AVD, предназначенных для разных платформ (Android 2.2 и Android 4.0.3).
- Только после того, как эмулятор откроется, но до истечения времени ожидания: разблокировка телефона V до тех пор, пока он не погаснет с заблокированным телефоном (в эмуляторе).
-
Проверено, что у меня в AndroidManifest.xml:
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8" />
Среда, связанная с окружающей средой (ПК и телефон):
- Перезагрузка моего телефона.
- Перезагрузили мой ПК для разработки.
- Отключение моего программного и аппаратного брандмауэра.
- Включение защиты в реальном времени MS Security Essentials.
- Отключить список моих хостов.
- Переустановлена Java.
- Загрузка в безопасный режим Windows и запуск Eclipse.
- Вручную убивает большинство других приложений Процессы TCP/IP (например, GoogleDesk.exe, Apache Server PunkBuster и т.д.), видя, что доступно в Sysinternals TCPView.
- Отключен кабель Ethernet от моего ПК.
Другая информация
Некоторые команды adb работают.
Например, следующее заставляет экран эмулятора танцевать (как ожидается).
Обезьяна оболочки adb -v 100
Я могу перечислить устройства и правильно восстановить их состояние с помощью
adb.
Таким образом, существует частичная связь между клиентом adb и демоном adb (через сервер adb).
Я относительно новичок в разработке Android. Тем не менее, я успешно установил .apks для эмулятора и моего устройства около 6 месяцев назад (с ПК WinXP я сейчас пытаюсь сделать работу). С тех пор я проигнорировал Android. Когда я вернулся к нему недавно, у меня возникла проблема с созданием моих .apks, которое было исправлено, удалив мой debug.key и позволяя eclipse генерировать новый.
В течение 6 месяцев моя машина разработки изменилась разными способами. Установка новых серверов и приложений, изменение настроек брандмауэра и т.д. Таким образом, может быть какое-то изменение, которое я пропускаю.
У меня также есть ноутбук Win7, из которого я успешно установил .apks на эмулятор и физическое устройство, подключенное через USB. То есть, у меня есть копия Android SDK, Eclipse, JAVA и т.д., Установленных на машине Win7. Поэтому я знаю, что у меня есть общий дескриптор правильной процедуры для правильной настройки.
Я могу установить .apk вручную, дважды щелкнув файл через ES File Explorer с моего телефона (который подключается к моей машине разработки по беспроводной сети).
Заключительные мысли
Кажется, что некоторые проблемы с клиентом adb, adb-сервером или демоном adb полностью разговаривают друг с другом.
У меня есть три гипотезы:
- Это моя вина. Что-то вроде конфликта TCP/IP, который нарушает некоторые из соединений между клиентом adb, adb-сервером или демоном adb. Это связано с некоторыми причудливыми настройками на моем ПК (как и любой разработчик, я все время меняю различные настройки в своей системе). Тем не менее, я попытался отключить защиту и другие потенциально конфликтующие процессы TCP/IP (насколько я могу судить).
- Некоторая простая проблема, которую я продолжаю игнорировать.
- Это ошибка Google/Android. То есть в AdBob для Android есть ошибка, требующая обновления для инструментов платформы Android SDK. Я думаю, что это менее вероятно, так как я ожидаю, что он всплыл к настоящему времени.
Обновления для публикации
2012-06-22 18:55 (UTC):
Завершите переустановку (снова) Java, Eclipse и Android SDK с некоторыми изменениями в установке (например, Установленная Java для root, Android SDK в "Program Files" по умолчанию) и отключением всех программ безопасности во время установки),
Я отмечаю сообщение об ошибке "Ошибка остановки сервера ADB (код -1)". в журнале Android SDK Manager во время и установки различных частей платформы/инструментов (через Менеджер).
2012-06-30 06:15 (UTC):
Скорректированные спецификации "Моя среда", чтобы отразить последние тесты.