Failed to install *.apk on device 'emulator- 55XX' [Android App Development]

Failed to install *.apk on device
Failed to install *.apk on device 'emulator- 55XX' [Android App Development]

Kemaren ceritanya gw lagi iseng-iseng nyoba develop aplikasi RSS Reader sederhana untuk android, untuk testing aplikasi, gw coba running di 2 AVD (Android Virtual Device), yang satu diset pake Froyo (API Level 8), sementara yang lainnya pake ICS (API Level 14). Waktu running di AVD Froyo sih nggak ada masalah ya.. Eh, waktu testing di AVD ICS, alih-alih running, install ke AVD ajah dianya nggak mau.. Aisshhh... ~,~


Coba-coba liat logcat, keluarlah sederet kata-kata nggak jelas berikut:


[2013-09-28 03:52:46 - RSSReader] Failed to install RSSReader.apk on device 'emulator-5556': EOF
[2013-09-28 03:52:46 - RSSReader] java.io.IOException: EOF
[2013-09-28 03:52:46 - RSSReader] Launch canceled!
Pengen nangis gw bacanya. Anyone, please help me to analyze this log! *silent* 

*hopeless* :'(

Emang dasarnya gw bego, pikiran gw melayang kemana-mana, tersangka utama adalah ketidaksempurnaan application life cycle yang gw buat. Ya, mungkin ajah kan!? Soalnya gw juga baru kenalan sama android application development, wajar dong kalo gw curiga, kalo gw belom bisa sepenuhnya percaya, kalo gw belum mau diajak kawin.. <- ini apa sih.. ~________~.

Tapi tapi tapi, setelah dilakukan penulusuran lebih lanjut, nanya-nanya paman google, ternyata gw salah sodara-sodara!

Kegagalan install tersebut dikarenakan time out ketika ADB (Android Debug Bridge) mencoba berkomunikasi dengan emulator. Kalo analisa gw sih, dalam hal ini time out terjadi ketika emulator terlalu lambat merespon ADB dalam proses upload file apk, sehingga proses tersebut dianggap gagal oleh ADB, hal ini dikarenakan komputer kita kurang macho dalam melakukan emulasi, dan memang emulasi ini membutuhkan resource yang cukup tinggi. Yang gw agak kecewa, kenapa si logcat nggak ngasih tau kalau ADB mengalami time out ketika berkomunikasi dengan emulator, dia cuman bilang Failed to install bla.. bla.. diikuti statement java.io.IOException, statement akibat kegagalan operasi Input/Output.. Kegagalan I/O kan luas banget.. Aiissh.. ~_______~

Oke, untuk mengatasi hal ini, caranya cukup mudah, kita tinggal setting ajah ADB connection timeout-nya.

Gw pake Eclipse sebagai IDE, jadi setting-nya ada di:

-> [Window] 
-> [Preferences] 
-> [Android] 
-> [DDMS] 
-> ADB Connection Timeout (ms)

Default value-nya 5000 (ms), gw ganti jadi 15000 (ms)

Dan... Voila! It works for me!

Buat yang nggak sukses dengan cara diatas, ada kemungkinan malah service ADB-nya yang agak rada-rada, coba restart service ADB via cmd dengan cara:
adb kill-server
adb start-server
Oh iya, kalo lo pake real device, usahakan juga USB power mencukupi, jadi jangan dicolokin via USB hub apalagi USB hub-nya udah 2 cabang, jangan yaa.. ~_________~

Semoga berhasil! :)

oops! Testing code dulu ah..
<body>
<!-- body goes here.. -->
</body> 

Sir. Aboed Armstrong

Officially trained as a Civil Engineer, Aboed has thrown off the shackles of Stone and Concrete to return to his original passion: Information Technology.

4 komentar:

  1. Abuud,rupanya anda sudah lulus,
    tinggallah saya disini yang jadi mahasiswa tua
    doain gue cepet lulus ya buuudd

    BalasHapus
    Balasan
    1. Alhamdulillah.. Hhahaa..
      Iya, didoain cepet lulus mel, biar cepet jadi guru..
      Aamiin..
      BTW, lulus lama enak loh, semua orang seneng pas kita lulus, dari mahasiswa, staff, sampe dosen.. kayak ada semacam beban yang hilang dari pundak mereka.. ~__________~

      Hapus
  2. kak, salam kenal ya. boleh nanya kak?
    itu dasar yg menyebabkan launch canceled apa karena aplikasi yg dibuat terlalu besar sehingga emulator berat running nya? terus sama batasan value ADB nya sampai berapa puluh ribu ya kak?
    mohon bantuannya kak. maaf saya baru belajar soalnya ^.^

    BalasHapus
    Balasan
    1. Salam kenal dia,

      Nggak sih, itu aplikasi yang pernah gw coba malah enteng banget harusnya. Bukan aplikasinya yang berat, tapi emulatornya itu sendiri.

      Kalau batas maksimum belum tau juga, tapi katanya ada yang coba sampe 120.000 ms.

      Hapus