Installation aufgrund eines Timeouts im Emulator fehlgeschlagen

Beim Versuch, eine .apk-Datei von Eclipse auf einem Android-Emulator oder einem physischen Gerät (über USB) zu installieren, wird der Fehler "Fehler beim Installieren der * .apk-Datei auf Gerät '*': Zeitüberschreitung" angezeigt. Die .apk-Datei befindet sich weder auf dem Emulator noch auf einem physischen Gerät (Samsung Galaxy S2, gerootet).

Wenn ich Eclipse vermeide und nur die Befehlszeile verwende, kann ich auch keine APK-Datei installieren.

Warum ein neuer Beitrag dazu?

Es gibt mehrere andere Stackoverflow-Posts, die auf den Fehler "Fehler beim Installieren ..." verweisen. Ich habe aus folgenden Gründen einen neuen Beitrag erstellt:

Die meisten anderen Beiträge sind nicht detailliert.Die prominente relevante Stelle,Android-Fehler: Fehler beim Installieren von * .apk auf Gerät *: TimeoutGilt für das Originalposter nur für physische Geräteanschlüsse. Es ist also ein anderer Fall, wenn auch mit ähnlichen Symptomen.Alle Kandidatenlösungen in diesem Beitrag und einige andere habe ich ausprobiert. Diese sind unten unter "Kandidatenlösungen, die ich ausprobiert habe" aufgeführt.

Dieser Beitrag ist langwierig, da die Schritte, die ich unternommen habe, langwierig sind, wie es der Fehler rechtfertigt. Wenn Sie diesen Beitrag nicht lesen oder zumindest scannen möchten, kommentieren Sie ihn bitte nicht.

Meine Umgebung

HOST-Betriebssystem: Windows XP SP3

JAVA: Java SDK Version 1.6.0_32

WINDOWS-UMGEBUNGSVARIABLEN:

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 (installierter Klassiker) Indigo. Version 3.7.2

ANDROID SDK

Android SDK Tools Revision: 20. (hauptsächlich mit Revision 19 getestet).Android SDK Plattform-Tools: 11.ADT-Plug-In ("Android Development Toolkit", Eclipse-Plugin) Version: 20.0.0.v201206010423-369331 (auch mit Vorgängerversion 18.0.0.v201203301501-306762).Zielplattform für Ihr Projekt und Version der Plattform, die im Emulator ausgeführt wird. Versucht jeweils aus:Android 4.0.3 (API 15)Android 2.2 (API 8)Andorid 2.1 (API 7)

MOBILE: Samsung Galaxy S2 mit Android Ice Cream Sandwich (ICS) 4.0.3

ANT: 1.8.2

Schritte, die ich durchführe, um die Fehler zu erzeugen.

Verwenden von Eclipse, um zu versuchen, eine APK-Datei auf dem Emulator zu installieren:

Öffnen Sie Eclipse (wodurch mein Arbeitsbereich mit einer einzigen Android-Anwendung geladen wird).Führen Sie meine Android-Anwendung mit einer zuvor konfigurierten Run-Konfiguration aus.Die "Android Device Chooser" wird gestartet (ich habe meine Run-Konfiguration so eingestellt, dass diese manuell gestartet wird).In der Android-Geräteauswahl wähle ich meinen avd (für Android 2.2) aus und klicke auf OK.Der Emulator wird mit "5554: jlbavd2_2" geöffnet. Mein AVD-Name ist "jlbavd2_2".Ich lasse den Emulator offen. In Eclipse öffne ich die DDMS-Ansicht. Im Bereich "Geräte" klicke ich auf das weiße Dreieck und wähle "Reset adb".

In der Eclipse-Konsole, Android-Ansicht, bekomme ich

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

In der Eclipse-Konsole erhalte ich als DDMS-Ausgabe:

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

Manchmal (vielleicht mache ich etwas andere Schritte) bekomme ich:

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

Beachten Sie den "Bind: Unbekannter Fehler". Manchmal passiert dieser Fehler, manchmal nicht.

Wenn ich mein Ethernet-Kabel von meinem Hardware-Router abziehe, erhalte ich Folgendes:

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

Beachten Sie die "Warnung: Keine DNS-Server gefunden"

Wenn ich Eclipse verwende, um zu versuchen, eine APK-Datei auf einem physischen Gerät zu installieren (verwurzeltes Samsung Galaxy S2. 4.0.3 mit aktiviertem USB-Debugging), und nachdem ich ähnliche Schritte wie oben ausgeführt habe, erhalte ich in der Eclipse-Konsole die Android-Ausgabe:

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

Dieselbe Art von Fehler wie beim Versuch, auf dem Emulator zu installieren.

Wenn ich nur die Befehlszeile verwende und dadurch Eclipse vermeide, gehe ich die folgenden Schritte durch:

Öffnen Sie eine Windows-Eingabeaufforderung in meinem Arbeitsverzeichnis (ich verwende C: \ Data \ Sda \ Code \ Mobile \ Android \ Examples> ").

Android-Liste Ziele.

Ich erhalte meine Ziel-ID (ich wähle Android 2.2).

android create project --target 3 --name MyAppCmd ​​--path ./MyAppCmd ​​--activity MyAppCmdActivity --package au.com.myorg.myappcmd

Ich erhalte eine Reihe von gesund aussehenden Ausgaben "Erstelltes Projektverzeichnis ...", "Hinzugefügte Datei ..."

In Windows doppelklicke ich auf "AVD Manager.exe".Ich starte mein avd (welches Android 2.2 als Ziel hat)

Zurück zu meinem Befehlsfenster

cd MyAppCmd

Ameisendebug

Nach einer Liste der Ausgaben erhalte ich "BUILD SUCCESSFUL ..." (Bei einer früheren Gelegenheit musste ich C: \ android \ android-sdk \ platform-tools \ dx.bat bearbeiten, um "set defaultXmx = -Xmx1024M" auf "zu setzen. set defaultMx = -Xmx512M "um den Build erfolgreich zu machen). Ich beobachte, dass bin / MyAppCmd-debug.apk existiert.

Ich versuche eine Installation mit

adb installiere bin / MyAppCmd-debug.apk

Ausgabe:

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

adb Geräte

List of devices attached
emulator-5554   device

adb installiere bin / MyAppCmd-debug.apk

Es erfolgt keine weitere Ausgabe im Befehlsfenster. Keine Fehlermeldung. Nur ein blinkender Cursor, keine Fehler- oder Erfolgsmeldung und keine Rückkehr zur Eingabeaufforderung ">".

Ich schalte die Kommandozeile aus und öffne eine neue.

Ich erhalte das gleiche Ergebnis (ein blinkender Cursor usw.), wenn ich einen Push-Befehl versuche (temp.txt wurde zuvor auf meinem Windows-System erstellt) ...

adb push temp.txt /sdcard/temp.txt

Kandidatenlösungen, die ich ausprobiert habe

Eclipse im Zusammenhang mit:

Befolgte die Schritte vonEclipse spricht nicht mit dem EmulatorZeitüberschreitung für ADB-Verbindung erhöht. Eclipse> Window> Preferences> Android> DDMS> "ADB-Verbindungs-Timeout (ms):" = 10000 (ich habe auch 60000 ausprobiert).Ausführen der Anwendung zweimal (und erneutes Auswählen des aktuell ausgeführten Emulators oder Mobiltelefons).Bereinigte mein Projekt: Eclipse> Project> Clean ...Eclipse neu gestartet.Eclipse wurde von Indigo (2.7.x) auf Helios (2.6.x) herabgestuft.

Android im Zusammenhang mit:

Setzen Sie die ADB auf verschiedene Arten zurück: Befehl "ADB zurücksetzen" aus der Eclipse-DDMS-Perspektive (aus dem Fensterdreieck "Geräte"); Kommandozeile mit "adb kill-server" und "adb start-server"; und Verwenden des Windows Task-Managers zum Beenden von adb.exe.Erneutes Installieren der Samsung OEM USB-Treiber (mithilfe von KIES> Tools> Fehlerbehebung bei Verbindungsfehlern).Installieren meines Android SDK in einem Verzeichnis ohne Leerzeichen in den Pfaden. Nämlich C: \ Android \ android-sdk. Dies bedeutete eine Neuinstallation des SDK, das sich früher unter C: \ Programme \ Android \ android-sdk befandMein Android-Projekt wird in einem Verzeichnis ohne Leerzeichen im Pfad installiert.Avd löschen und neu erstellen (sowohl über den Android AVD Manager als auch über den Windows Explorer).Verwenden verschiedener AVDs, die auf verschiedene Plattformen abzielen (Android 2.2 und Android 4.0.3).Kurz nachdem der Emulator geöffnet wurde, aber bevor das Timeout einsetzt: Entsperren des Telefons V, bis das Timeout bei gesperrtem Telefon (im Emulator) einsetzt.

Bestätigt, dass ich in meiner AndroidManifest.xml Folgendes habe:

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

Umgebungsbedingt (PC und Telefon):

Mein Telefon neu gestartet.Ich habe meinen Entwicklungs-PC neu gestartet.Software- und Hardware-Firewall ausschalten.Aktivieren des Echtzeitschutzes von MS Security Essentials.Meine Hosts-Liste wurde deaktiviert.Java neu installiert.Booten in den abgesicherten Windows-Modus und Ausführen von Eclipse.Manuelles Beenden der meisten anderen TCP / IP-Anwendungsprozesse (z. B. GoogleDesk.exe, Apache Server PunkBuster usw.) durch Anzeigen der verfügbaren InformationenSysinternals TCPView.Trennen Sie das Ethernet-Kabel von meinem PC.Andere Informationen

Einige ADB-Befehle funktionieren.

Zum Beispiel lässt das Folgende den Emulator-Bildschirm herumtanzen (wie erwartet).

adb Muschelaffe -v 100

Ich kann die Geräte auflisten und ihren Status mit korrekt abrufen

adb Geräte.

Es besteht also eine teilweise Kommunikation zwischen einem AdB-Client und einem AdB-Daemon (über einen AdB-Server).

Ich bin relativ neu in der Android-Entwicklung. Ich habe jedoch vor ungefähr 6 Monaten erfolgreich .apks auf dem Emulator und meinem Gerät installiert (auf dem WinXP-PC versuche ich nun, die Arbeit aufzunehmen). Ich habe Android seitdem ignoriert. Als ich kürzlich darauf zurückkam, hatte ich ein Problem beim Erstellen meiner .apks, das behoben wurde, indem ich meinen debug.key löschte und Eclipse erlaubte, einen neuen zu generieren.

In den letzten 6 Monaten hat sich meine Entwicklungsmaschine in vielerlei Hinsicht verändert. Installieren neuer Server und Apps, Ändern der Firewall-Einstellungen usw. Es kann also durchaus zu Änderungen kommen, die ich übersehen habe.

Ich habe auch einen Win7-Laptop, von dem ich erfolgreich .apks auf den Emulator und das über USB verbundene physische Gerät installiert habe. Das heißt, ich habe eine Kopie des Android SDK, Eclipse, JAVA usw. auf dem Win7-Computer installiert. Daher weiß ich, dass ich einen allgemeinen Überblick über das richtige Verfahren zur korrekten Einrichtung habe.

Ich kann die APK-Datei manuell installieren, indem ich auf die Datei über den ES-Datei-Explorer von meinem Telefon aus doppelklicke (wodurch eine drahtlose Verbindung zu meinem Entwicklungscomputer hergestellt wird).

Abschließende Gedanken

Es scheint, dass es ein Problem mit dem AdB-Client, dem AdB-Server oder dem AdB-Daemon gibt, wenn sie vollständig miteinander kommunizieren.

Ich habe drei Hypothesen:

Es ist meine Schuld. Es liegt ein TCP / IP-Konflikt vor, durch den einige Verbindungen zwischen dem AdB-Client, dem AdB-Server oder dem AdB-Dämon unterbrochen werden. Dies ist auf einige verrückte Einstellungen auf meinem PC zurückzuführen (wie bei jedem Entwickler, den ich ständig an meinem System ändere). Ich habe jedoch versucht, die Sicherheit und andere möglicherweise in Konflikt stehende TCP / IP-Prozesse zu deaktivieren (soweit ich das beurteilen kann).Ein einfaches Problem, das ich übersehen habe.Es ist die Schuld von Google / Android. Das heißt, es gibt einen Fehler in der Android-AdB, der ein Update der Android SDK-Plattform-Tools erfordert. Ich halte das für weniger wahrscheinlich, da ich davon ausgehen würde, dass es inzwischen aufgetaucht ist.Updates zum Posten

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

Schließen Sie die Neuinstallation von Java, Eclipse und dem Android SDK (erneut) mit einigen Variationen bei der Installation ab (z. B. Java im Stammverzeichnis installiert, Android SDK auf die Standard-Programmdateien \) und deaktivieren Sie während der Installation die gesamte Sicherheitssoftware.

Ich stelle einen Fehler fest "Das Stoppen des ADB-Servers ist fehlgeschlagen (Code -1)." im Android SDK Manager Protokollieren und installieren Sie die verschiedenen Teile der Plattform / Tools (über den Manager).

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

Die "My Environment" -Spezifikationen wurden angepasst, um die neuesten Tests widerzuspiegeln.

Antworten auf die Frage(14)

Ihre Antwort auf die Frage