當試圖從Eclipse安裝.apk,無論是android模擬器還是物理設備(通過USB)時,我都會遇到「無法在設備上安裝* .apk * ':超時「錯誤。 在模擬器上沒有找到.apk,也沒有找到物理設備(三星Galaxy S2,根源)。由於在模擬器中超時而無法安裝
如果我避免eclipse,只使用命令行,我也無法安裝.apk。
爲什麼在這個新的職位?
還有幾個其他的stackoverflow帖子引用「無法安裝...」錯誤。我創建了一個新帖子,原因如下:
- 大多數其他帖子都沒有詳細說明。
- 原始海報的重要相關帖子Android error: Failed to install *.apk on device *: timeout僅適用於物理設備連接。所以這是一個不同的情況,雖然症狀相似。
- 該帖子中的所有候選解決方案以及其他幾個我都試過。這些被列在下面的「我嘗試過的候選解決方案」下。
這篇文章冗長,因爲我採取的步驟都很冗長,正如錯誤所保證的。如果你不想閱讀或至少掃描這篇文章,請不要發表評論。
我的環境
主機操作系統:Windows XP SP3
JAVA:Java的SDK版本1.6.0_32
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(安裝經典)Indigo。版本3.7.2
機器人SDK
- Android SDK工具修訂:20(主要是使用版本19測試)。
- 的Android SDK平臺的工具:11
- ADT插件( 「Android開發工具包」,Eclipse插件)版本: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:三星Galaxy S2運行Android Ice Cream Sandwhich(ICS)4.0.3
ANT:1.8。2
我會經歷以產生錯誤的步驟。
使用Eclipse試圖.apk文件安裝到模擬器:
- 開放的Eclipse(它加載我的工作區,在一個單一的Android應用程序)。
- 使用先前配置的運行配置運行我的android應用程序。
- 「Android設備選配器」啓動(我已經設置了我的運行配置以手動啓動)。
- 在Android設備選配器中,我選擇我的avd(定位到Android 2.2),然後單擊確定。
- 模擬器以「5554:jlbavd2_2」打開。我的AVD名稱是「jlbavd2_2」。
- 我離開模擬器打開。在Eclipse中,我打開DDMS視圖。在「設備」窗格中,單擊白色三角形並選擇「重置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!
請注意「綁定:未知錯誤」。有時會發生這種錯誤,有時並不會。
如果我拔掉我的以太網電纜連接到我的硬件路由器,我得到以下幾點:
[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文件到物理設備(植根三星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 \代碼\手機\的Android \實例>「)。
的Android清單的目標。
我獲得我的目標ID(我選擇的Android 2.2)。
android create project --target 3 --name MyAppCmd --path ./MyAppCmd --activity MyAppCmdActivity --package au.com.myorg。myappcmd
我得到一系列看起來健康產出 「創建項目目錄...」, 「添加文件...」
- 在windows我雙擊 「AVD的manager.exe」。
- 我啓動我的AVD(其中的Android 2.2)
回到我的命令窗口
CD MyAppCmd
螞蟻調試
輸出的名單,我得到後「建立成功...」(在此之前,我必須編輯C:\ android \ android-sdk \ platform-tools \ dx.bat以將「defaultXmx = -Xmx1024M」更改爲「set defaultMx = -Xmx512M」使埠成功)。我觀察到bin/MyAppCmd-debug.apk存在。
我嘗試與
ADB的安裝安裝箱/ 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安裝斌/ MyAppCmd-debug.apk
有一個在命令窗口中沒有另外的輸出。沒有錯誤信息。只是一個閃爍的光標,沒有錯誤或成功消息,並且不會返回到命令提示符「>」。
我關閉了命令行並打開了一個新的命令行。
我得到了相同的結果(一個閃爍的光標等),如果我嘗試推出指令(TEMP.TXT有我的Windows系統上以前創建的)...
亞行推溫度。 TXT /sdcard/temp.txt
候選方案我已經試過
的Eclipse相關:
- 按照步驟從Eclipse isn't talking to the emulator
- 增加了ADB連接超時。 Eclipse>窗口>首選項> Android> DDMS>「ADB連接超時(毫秒):」= 10000(我也試過60000)。
- 運行應用程序兩次(並再次選擇當前運行的模擬器或手機)。
- 清理我的項目:Eclipse> Project> Clean ...
- 重新啓動Eclipse。
- 將Eclipse從Indigo(2.7.x)降級到Helios(2.6.x)。
的Android相關:
- 重置ADB在幾個方面:從Eclipse DDMS透視圖(從設備窗口三角) 「復位ADB」 命令;帶有「adb kill-server」和「adb start-server」的命令行;並使用Windows任務管理器殺死adb.exe。
- 重新安裝我的Samsung OEM USB驅動程序(通過使用KIES>工具>解決連接錯誤)。
- 將我的Android SDK安裝到路徑中任何位置不含空格的目錄中。即C:\ Android \ android-sdk。這需要重新安裝SDK,以前位於C:\ Program files \ Android \ android-sdk
- 我的Android項目安裝在路徑中任何位置沒有空格的目錄中。
- 刪除並重新創建avd(均來自Android AVD管理器並使用Windows資源管理器)。
- 使用針對不同平臺(Android 2.2和Android 4.0.3)的不同AVD。
- 在模擬器打開但超時之前:解鎖手機V等待手機鎖定(在模擬器中)鎖定超時。
已驗證我在AndroidManifest.xml中:
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8" />
環境相關的(PC和手機):
- 重新啓動我的電話。
- 重新啓動我的開發PC。
- 關閉我的軟件和硬件防火牆。移動MS Security Essentials實時保護。
- 禁用我的主機列表。
- 重新安裝Java。
- 啓動到Windows安全模式並運行Eclipse。
- 通過查看Sysinternals TCPView中的可用內容,手動殺死大多數其他應用程序的TCP/IP進程(例如GoogleDesk.exe,Apache Server PunkBuster等)。
- 斷開以太網電纜與PC的連接。
其他信息
有些ADB命令的工作。
例如,以下內容使仿真器屏幕跳舞(如預期的那樣)。
亞行外殼猴子-v 100
我可以列出的設備,然後正確地
ADB設備檢索他們的狀態。
因此,adb客戶端和adb守護程序(通過adb服務器)之間存在部分通信。
我對Android開發比較陌生。但是,大約6個月前,我已經成功地將模擬器和我的設備安裝了.apks(來自WinXP PC,現在我正在努力工作)。從那以後,我忽略了Android。當我最近回到它時,我遇到了一些問題,建立了我的.apks,通過刪除我的debug.key並允許eclipse生成一個新的.apks。
在6個月的干預過程中,我的開發機器以各種方式發生了變化。安裝新的服務器和應用程序,更改防火牆設置等。所以我可以忽略一些改變。
我也有一臺Win7筆記本電腦,我已經成功地將.apks安裝到模擬器和USB連接的物理設備上。也就是說,我有一個安裝在Win7機器上的Android SDK,Eclipse,JAVA等的副本。所以我知道我有一個正確的設置正確的程序的一般處理。
我可以通過手機(通過無線方式連接到我的開發計算機)通過ES File Explorer雙擊文件來手動安裝.apk文件。
最後的想法
似乎有一些問題,與亞洲開發銀行的客戶端,服務器,亞行,或在完全互相交談ADB守護程序。
我有三個假設:
- 這是我的錯。有某種TCP/IP衝突會破壞adb客戶端,adb服務器或adb守護進程之間的某些連接。這是由於我的電腦上有一些奇怪的設置(就像任何開發人員我一直在更改系統上的各種設置)。不過,我曾嘗試禁用安全性和其他潛在衝突的TCP/IP進程(據我所知)。
- 我忽略了一些簡單的問題。
- 這是谷歌/ Android的錯。也就是說,Android adb中存在一個需要更新android SDK平臺工具的bug。我認爲這種可能性較小,因爲我預計它現在已經浮出水面。
更新後
2012-06-22 18:55(UTC)的Java,Eclipse和Android SDK中的
完全重新安裝(再次)在安裝一些變化(例如,將Java安裝到根目錄;將Android SDK安裝到默認的「Program Files \」;以及在安裝期間關閉所有安全軟件)。
我注意到一個錯誤「停止ADB服務器失敗(代碼-1)」。在Android SDK Manager中登錄和安裝平臺/工具的各個部分(通過管理器)。
2012-06-30 06:15(UTC):
調整 「我的環境」 的規格,以反映最新的測試。
重新安裝軟件。 – Sajmon
感謝hawaii.five-O。忘記列出我已重新安裝Android SDK。將更新帖子。 –
檢查此問題:http://stackoverflow.com/questions/10795914/android-timeout-error – idiottiger