2012-06-20 37 views
29

當試圖從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):

調整 「我的環境」 的規格,以反映最新的測試。

+0

重新安裝軟件。 – Sajmon

+0

感謝hawaii.five-O。忘記列出我已重新安裝Android SDK。將更新帖子。 –

+1

檢查此問題:http://stackoverflow.com/questions/10795914/android-timeout-error – idiottiger

回答

1

幾個月後,我通過升級到全新的環境解決了這個問題。特別是,新的Windows 8的安裝新機器。我也避免安裝Comodo套件(我不知道這是造成問題)。

因此,雖然這不是問題的直接解決方案(目前尚不清楚導致問題的原因),也許它可能成爲另一個解決問題的方法或橫向解決方案有時是最佳選擇。

3

如果它的超時然後可能是與eclipse的ADB連接將需要更多的超時限制。所以,試試這個:

Prefrences>android>DDMS and you will see ADB connection timeout extend it to 20000

+0

您錯過了我上面寫的「增加ADB連接超時。Eclipse>窗口>首選項> Android> DDMS>」ADB連接超時(ms):「= 10000(我也試過60000)」。 –

+0

嘗試adb kill-server然後adb start-server然後adb安裝軟件包名稱...如果這在模擬器中不起作用,那麼你說你已經有根設備在其中嘗試同樣的東西... –

+0

Vipin Sahu。是的,我已經嘗試了這兩件事。也就是說,通過我列出的三種技術中的任何一種來重置adb。檢查模擬器或設備是否被識別(在eclipse DDMS視圖>設備面板中:觀察列出的仿真器或設備,或者從命令行「adb devices」)。然後通過eclipse或命令行安裝.apk;到仿真器或物理設備。 –

0

嘗試這些...

  • 關閉Eclipse。
  • 轉到CMD和類型:(我希望你已經設置的Android工具文件夾的路徑在您的路徑)

adb kill-server
adb start-server

輸出將是:

daemon not running. starting it now on port 5037 
daemon started successfully 
  • 開始你的Eclipse。

  • 啓動模擬器,如果你是物理設備,看到你的電纜不鬆動,而且正確連接

+0

庫馬爾。感謝您的答覆。然而,重新:「我希望你已經在你的路徑中設置了Android工具文件夾的路徑」我在「我的環境」下列出了我的路徑設置。在「我嘗試過的候選解決方案」下,我提到要使用您的方法和其他方法重新設置adb。錯誤的電纜連接不會解決仿真器中的相同問題。我可以通過物理連接向設備發送猴子命令,正如我在文章中提到的,這表明物理連接沒有問題。 –

1

我簡單的方法是隻需重新啓動模擬器(不蝕)。它不需要我發送任何adb命令就可以工作。儘管如此,很少發生在物理設備上。

+0

謝謝,但我已經嘗試過。 –

2

當這種情況發生在我們的物理設備上時,我們通常會嘗試通過拔下插頭,切換設備上的「android調試模式」並重新連接來修復它。

+0

甚至不需要拔下插頭,切換標誌就足夠了。 –

+0

爲我工作 - 拔掉,切換,重新插入和直接工作 - 多麼愚蠢 – Simon

0

只需拔出並插入電話(物理)的作品。當電話連接時間過長而且沒有任何事情發生時,這種情況確實發生在我身上(太多次)。

+0

謝謝。有這些症狀時要注意什麼。但是,它不適用於我的情況(問題發生在模擬器中)。 –

0

我已經得到了與您的問題中提到的相同的行爲,並嘗試了您列出的每個解決方案。試試這個:更換USB端口。對於我來說,我總共有4個USB端口(兩個在我的桌面前,另外兩個在後面)。無論我做什麼,前面的兩個都給了我[超時安裝]。我嘗試過的後面第一個已經工作了。我不知道它可能是一些與USB端口版本或MotherBoard嵌入式USB相關的問題。

+0

謝謝mthama。考慮到模擬器和設備存在問題,USB的情況應該是不相關的。但是,在你的提示。我試圖直接連接到我的板載USB端口(我通常通過USB集線器連接(與集線器情況一樣,該設備被識別,但我得到相同的「無法安裝」錯誤。連接到仿真器時是否有問題通過更換USB端口解決問題? –

0

你可以試試這個:

1. Open the "Android Virtual device Manager" 
    2. Select from one the listed devices there and run it. 
    3. Right your Android App -> Run As -> Android Application 

它爲我工作。我在eclipse的模擬器上試了這個。 運行應用程序需要一段時間。對我來說,它花了33秒。 等待,直到控制檯中的消息顯示「成功!」

0

這是我的Win7我的64位系統上做的時候發生這種情況:

  1. 關閉Eclipse
  2. 殺adb.exe和仿真器臂的所有副本。從任務管理器中的exe
  3. 打開Eclipse
  4. 切換到DDMS視圖,並確保你可以看到設備
  5. 打開窗口/ ADV經理
  6. 選擇所需的仿真器,然後按開始
  7. 觀看設備面板DDMS,看看模擬器是否顯示。 如果在開始窗口進度條完成之前它沒有顯示,那麼仿真器不會在這次加載,所以關閉仿真器。
  8. 然後從6

對我來說,從來沒有模擬器啓動第一次,但9次了10年將成功啓動第二次嘗試重複。

希望他們能解決這個問題! 馬克

2

請確保您在ADMIN帳戶上工作。這個問題也讓我感到沮喪,但是當我切換到管理員帳戶(在Windows Vista上)時,adb似乎正確地在設備上安裝了apk。

+0

感謝您爲我添加了一個可能的解決方案,我沒有提到過,我已經試過了(不假思索地)。幸運的是,我已經通過升級到運行Windows 8的新機器解決了這個問題。 –

2

我有同樣的問題;通過將* .apk複製到手機內存並直接安裝到設備上(通過Myfiles並選擇* .apk),它可以正常工作。我懷疑USB連接有問題(錯誤太多,由於其他使用USB的進程等,Eclipse太慢)。

0

如果您不在管理員帳戶,請確保家長控制已關閉。它對我有用。

1

嘗試更改ADB連接超時。我認爲它的默認值是5000ms,我將它改爲10000ms以擺脫這個問題。

如果你在Eclipse中,您可以通過

窗口 - >首選項要做到這一點 - > Android的 - > DDMS - > ADB連接超時(毫秒)

+0

「 Eclipse>窗口>首選項> Android> DDMS>「ADB連接超時(ms):」= 10000(我也試過60000)。「 –

-1

首先你必須更新所有你的系統的驅動程序,然後用基本的方式安裝android studio,然後錯誤將解決。 請先嚐試,因爲我也多次面臨這個問題....

+0

這看起來不像是答案 – Gahan

+0

嘗試首先,因爲我也多次面對這個問題....現在我的問題解決了..... –

相關問題