Nie można zainstalować z powodu przekroczenia limitu czasu w emulatorze

Podczas próby zainstalowania pliku .apk z Eclipse, czy to w emulatorze Androida, czy w urządzeniu fizycznym (przez USB), pojawia się błąd „Nie można zainstalować * .apk na urządzeniu '*': timeout”. .Apk nie znajduje się na emulatorze ani na urządzeniu fizycznym (Samsung Galaxy S2, rooted).

Jeśli uniknę zaćmienia i po prostu skorzystam z wiersza poleceń, nie mogę także zainstalować pliku .apk.

Dlaczego nowy post na ten temat?

Istnieje kilka innych postów dotyczących stackoverflow, które odwołują się do błędu „Nie można zainstalować ...”. Stworzyłem nowy post z kilku powodów:

Większość innych postów nie jest szczegółowa.Wybitny odpowiedni post,Błąd Androida: nie można zainstalować * .apk na urządzeniu *: limit czasu, dla oryginalnego plakatu, dotyczy tylko fizycznych połączeń urządzenia. Jest to więc inny przypadek, choć z podobnymi objawami.Wszystkie kandydujące rozwiązania w tym poście i kilka innych próbowałem. Są one wymienione poniżej w części „Rozwiązania kandydackie, które próbowałem”.

Ten post jest długi, ponieważ kroki, które podjąłem, są długie, co było uzasadnione przez błąd. Jeśli nie chcesz czytać, a przynajmniej przeskanować, ten post proszę nie komentować.

Moje środowisko

System operacyjny HOST: Windows XP SP3

JAVA: Java SDK w wersji 1.6.0_32

ZMIENNE ŚRODOWISKA WINDOWS:

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 (zainstalowany klasyczny) Indigo. Wersja 3.7.2

ANDROID SDK

Wersja SDK narzędzi dla Androida: 20. (Głównie testowane z wersją 19).Narzędzia platformy Android SDK: 11.Wtyczka ADT („Android Development Toolkit”, Eclipse Plugin) wersja: 20.0.0.v201206010423-369331 (również z wcześniejszą wersją 18.0.0.v201203301501-306762).Platforma kierowana przez Twój projekt i wersję platformy działającej w emulatorze. Próbowałem każdego:Android 4.0.3 (API 15)Android 2.2 (API 8)Andorid 2.1 (API 7)

MOBILNA: Samsung Galaxy S2 z systemem Android Ice Cream Sandwhich (ICS) 4.0.3

ANT: 1.8.2

Kroki, przez które przechodzę, aby stworzyć błędy.

Używając Eclipse, spróbuj zainstalować plik .apk w emulatorze:

Otwórz zaćmienie (które ładuje moją przestrzeń roboczą za pomocą jednej aplikacji na Androida).Uruchom moją aplikację na Androida, używając wcześniej skonfigurowanej konfiguracji uruchamiania.Zostanie uruchomiony „Wybieracz urządzeń z Androidem” (ustawiłem konfigurację Uruchom, aby uruchomić ją ręcznie).W Wybieraczu urządzeń z systemem Android wybieram swój avd (celujący w Android 2.2) i klikam OK.Emulator otwiera się z „5554: jlbavd2_2”. Moja nazwa AVD to „jlbavd2_2”.Pozostawiam emulator otwarty. W Eclipse otwieram widok DDMS. W okienku „Urządzenia” klikam na biały trójkąt i wybieram „Zresetuj adb”.

W konsoli Eclipse, w widoku Android, otrzymuję

[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!

W konsoli Eclipse, wyjście DDMS, otrzymuję:

...
[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

Czasami (może wykonuję nieco inne kroki) dostaję:

[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!

Zwróć uwagę na „bind: Nieznany błąd”. Czasami ten błąd się zdarza, czasami nie.

Jeśli odłączę kabel Ethernet od routera sprzętowego, otrzymam następujące informacje:

[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!

Zwróć uwagę na „Ostrzeżenie: nie znaleziono serwerów DNS”

Używając Eclipse do próby zainstalowania pliku .apk na urządzeniu fizycznym (zakorzenione Samsung Galaxy S2. 4.0.3 z włączonym debugowaniem USB), i po przejściu podobnych kroków jak powyżej, otrzymuję konsolę Eclipse, wyjście 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!

Ten sam rodzaj błędu, co przy próbie instalacji w emulatorze.

Używając tylko wiersza poleceń, a tym samym unikając Eclipse, wykonuję następujące kroki:

Otwórz wiersz polecenia systemu Windows w moim katalogu roboczym (używam C: Data Sda Kod Mobile Android Przykłady> ”).

cele listy android.

Otrzymuję swój identyfikator docelowy (wybieram Android 2.2).

android utwórz projekt - cel 3 - nazwa MyAppCmd ​​- ścieżka ./MyAppCmd ​​--aktywność MyAppCmdActivity - pakiet au.com.myorg.myappcmd

Dostaję serię zdrowo wyglądających wydruków „Utworzono katalog projektu ...”, „Dodano plik ...”

W systemie Windows klikam dwukrotnie „AVD Manager.exe”.Uruchamiam mój avd (który kieruje do Androida 2.2)

Wróć do mojego okna poleceń

cd MyAppCmd

debugowanie ant

Po liście wyników otrzymuję „BUDUJ SUKCES ...” (przy wcześniejszej okazji musiałem edytować C: android android-sdk-narzędzia-platformy dx.bat, aby zmienić „set defaultXmx = -Xmx1024M” na „ ustaw defaultMx = -Xmx512M ", aby kompilacja się powiodła). Obserwuję, że istnieje bin / MyAppCmd-debug.apk.

Próbuję zainstalować za pomocą

adb install bin / MyAppCmd-debug.apk

Wydajność:

* daemon not running. starting it now on port 5037 *
* daemon started successfully *
error: device offline

urządzenia adb

List of devices attached
emulator-5554   device

adb install bin / MyAppCmd-debug.apk

W oknie poleceń nie ma dalszych danych wyjściowych. Brak komunikatu o błędzie. Wystarczy migający kursor, brak komunikatu o błędzie lub powodzeniu i brak powrotu do wiersza polecenia „>”.

Wyłączam linię poleceń i otwieram nową.

Otrzymuję ten sam wynik (migający kursor itp.), Jeśli spróbuję użyć polecenia push (temp.txt został wcześniej utworzony w moim systemie Windows) ...

adb push temp.txt /sdcard/temp.txt

Rozwiązania dla kandydatów, których próbowałem

Zaćmienie:

Podążałem za krokami odEclipse nie rozmawia z emulatoremZwiększono limit czasu połączenia ADB. Eclipse> Okno> Preferencje> Android> DDMS> „Czas połączenia ADB (ms):” = 10000 (próbowałem także 60000).Dwukrotne uruchomienie aplikacji (i ponowne wybranie aktualnie działającego emulatora lub telefonu komórkowego).Wyczyszczono mój projekt: Eclipse> Projekt> Wyczyść ...Ponownie uruchomiony Eclipse.Zmniejszono Eclipse z Indigo (2.7.x) do Helios (2.6.x).

Android:

Zresetuj adb na kilka sposobów: „Resetuj ADB” z perspektywy Eclipse DDMS (z trójkąta okien Urządzenia); wiersz poleceń z „adb kill-server” i „adb start-server”; i za pomocą Menedżera zadań Windows zabić adb.exe.Ponowna instalacja sterowników Samsung OEM USB (przy użyciu KIES> Narzędzia> Rozwiązywanie problemów z połączeniem).Instalowanie mojego zestawu SDK systemu Android w katalogu bez spacji w dowolnym miejscu na ścieżkach. Mianowicie C: Android android-sdk. Wymagało to ponownej instalacji pakietu SDK, wcześniej zlokalizowanego w C: Pliki programów Android Android-sdkMój projekt Android jest instalowany w katalogu bez spacji w dowolnym miejscu na ścieżce.Usuwanie i odtwarzanie avd (zarówno z Android AVD Manager, jak i przy użyciu Eksploratora Windows).Używanie różnych AVD, które są skierowane do różnych platform (Android 2.2 i Android 4.0.3).Zaraz po otwarciu emulatora, ale przed jego upływem: odblokowanie telefonu V czekającego, aż upłynie czas z zablokowanym telefonem (w emulatorze).

Zweryfikowałem, że mam w moim pliku AndroidManifest.xml:

  <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8" /> 

Środowisko związane (komputer i telefon):

Uruchomiłem ponownie mój telefon.Uruchomiłem ponownie mój komputer programistyczny.Wyłączanie zapory programowej i sprzętowej.Włączanie ochrony MS Security Essentials w czasie rzeczywistym.Wyłączono moją listę hostów.Ponownie zainstalowano Java.Uruchamianie w trybie awaryjnym systemu Windows i uruchamianie Eclipse.Ręczne zabijanie większości innych procesów TCP / IP aplikacji (np. GoogleDesk.exe, Apache Server PunkBuster itp.) Przez zobaczenie tego, co jest dostępne wSysinternals TCPView.Odłącz kabel Ethernet od mojego komputera.Inne informacje

Niektóre polecenia adb działają.

Na przykład następujące elementy powodują, że ekran emulatora tańczy (zgodnie z oczekiwaniami).

adb shell monkey -v 100

Mogę wymienić urządzenia i poprawnie pobrać ich stan

urządzenia adb.

Istnieje więc częściowa komunikacja między klientem adb a demonem adb (za pośrednictwem serwera adb).

Jestem stosunkowo nowy w rozwoju Androida. Jednak pomyślnie zainstalowałem .apks do emulatora i mojego urządzenia około 6 miesięcy temu (z komputera WinXP, który próbuję teraz wykonać). Od tego czasu zignorowałem Androida. Kiedy niedawno do niego wróciłem, miałem problem z budowaniem .apks, który został naprawiony przez usunięcie mojego klucza debug.key i umożliwienie wygenerowania nowego przez eclipse.

W ciągu 6 miesięcy moja maszyna programistyczna zmieniła się na wiele sposobów. Instalowanie nowych serwerów i aplikacji, zmiana ustawień zapory sieciowej itp. Więc może być jakaś zmiana, której nie widzę.

Mam także laptop Win7, z którego pomyślnie zainstalowałem .apks do emulatora i urządzenia fizycznego podłączonego przez USB. Oznacza to, że mam kopię Androida SDK, Eclipse, JAVA itp. Zainstalowaną na komputerze z Win7. Wiem więc, że mam ogólne podejście do poprawnej procedury poprawnego ustawiania.

Mogę zainstalować plik .apk ręcznie, klikając dwukrotnie plik za pomocą Eksploratora plików ES z mojego telefonu (który łączy się bezprzewodowo z moim komputerem programistycznym).

Końcowe przemyślenia

Wygląda na to, że istnieje problem z klientem adb, serwerem adb lub demonem adb w pełnym rozmowie.

Mam trzy hipotezy:

To moja wina. Istnieje pewien rodzaj konfliktu TCP / IP, który łamie niektóre połączenia między klientem adb, serwerem adb lub demonem adb. Wynika to z jakiegoś dziwacznego ustawienia na moim komputerze (jak każdy programista cały czas zmieniam różne ustawienia w moim systemie). Próbowałem jednak wyłączyć zabezpieczenia i inne potencjalnie sprzeczne procesy TCP / IP (o ile wiem).Jakiś prosty problem, który wciąż omijam.Jest to wina google / Androida. Oznacza to, że jest błąd w adb Android, który wymaga aktualizacji narzędzi platformy Android SDK. Myślę, że to mniej prawdopodobne, ponieważ spodziewałbym się, że już się pojawiło.Aktualizacje do opublikowania

2012-06-22 18:55 (UTC):

Zakończ ponowną instalację (ponownie) Java, Eclipse i Android SDK z pewnymi odmianami instalacji (np. Zainstalowana Java do roota, Android SDK do domyślnego „Program Files” i wyłączenie całego oprogramowania zabezpieczającego podczas instalacji).

Zwracam uwagę na błąd „Zatrzymanie serwera ADB nie powiodło się (kod -1).” w Menedżerze SDK Androida Zaloguj się i zainstaluj różne części platformy / narzędzi (za pośrednictwem Menedżera).

2012-06-30 06:15 (UTC):

Dostosowano specyfikacje „Moje środowisko”, aby odzwierciedlić najnowsze testy.

questionAnswers(14)

yourAnswerToTheQuestion