[Android問答] 開發環境問題集錦

來源:互聯網
上載者:User

工欲善其事,必先利其器。

和iOS開發相比,Android的開發環境的版本比較多,隨之而來的問題也多。顯然,我們不應該浪費寶貴的時間在解決開發環境帶來的問題上,為此本文總結了常見的開發環境問題和解決方案,供大家查詢和隨時補充。

Debug certificate expired

Android SDK產生的用於調試的認證檔案debug.keystore有效期間是365天,當使用超過一年後控制台就會報這個錯誤。

Error generating final archive: Debug Certificate expired on 10/09/18 16:30

解決方案是手工刪除debug.keystore檔案,Windows系統下位於"C:\Documents and Settings\username\.android"目錄,Linux和Mac系統下位於"~/.android/"目錄。下次啟動應用時,Eclipse會自動建立一個debug.keystore檔案。最好"Project->Clean"一下項目以便觸發編譯器重新編譯。

Failed to install apk on device: timeout

導致這個問題的確切原因不清楚,可能是由於不正確關閉adb串連。

Failed to install helloworld.apk on device 'emulator-5554': timeout

解決方案1:更換電腦usb口(不使用前置usb口)或重裝手機驅動,將手機關機後再開機。

解決方案2:在Eclipse裡選擇"Window->Preferences->Android->DDMS->ADB connection time out",將預設的5000ms改為更大的值,例如20000ms。

解決方案3:在命令列視窗裡依次輸入如下命令:

adb kill-serveradb start-server
invalid command-line parameter

這是由於Eclipse開發環境無法找到所需的可執行檔造成的。

[2011-07-10 07:10:22 - demo] Android Launch![2011-07-10 07:10:24 - demo] adb is running normally.[2011-07-10 07:10:24 - demo] Performing com.demo.DemoActivity activity launch[2011-07-10 07:10:25 - demo] Automatic Target Mode: launching new emulator with compatible AVD 'xxx'[2011-07-10 07:10:25 - demo] Launching a new emulator with Virtual Device 'xxx'[2011-07-10 07:11:06 - Emulator] invalid command-line parameter: Files\Android\android-sdk\tools/emulator-arm.exe.

解決方案是在Eclipse裡選擇"Window->Preferences->Android"選項,檢查"SDK Location"的路徑是否包含了空格,如果是"c:\Program Files\android"這種,改為"c:\Progra~1\android",這樣命令列就可以正常調用到了。

小提示:在命令列視窗裡輸入"dir /x"命令就可以列出8.3格式的檔案名稱,看下面的結果:

2012-09-25  23:52    <DIR>          WATCHD~1     WatchData2012-09-01  11:01    <DIR>                       Winamp2012-07-24  22:22    <DIR>          WINDOW~4     Windows Live2012-07-24  22:21    <DIR>          WI3957~1     Windows Live SkyDrive
INSTALL_FAILED_INSUFFICIENT_STORAGE

安裝應用程式時遇到儲存容量不足時會報這個錯誤:

Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGEPlease check logcat output for more details.Launch canceled!

如果是在模擬器上運行應用,可以擴大AVD的記憶體容量。

如果是在真機上運行,可以在AndroidManifest.xml裡修改安裝偏好,讓應用直接安裝到SD卡上解決。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example"    android:installLocation="preferExternal" >...</manifest>
Unable to open sync connection

雖然很多人遇到這個問題,但問題的根源並不確切,可能有多種原因造成adb報這個錯誤:

[2010-10-12 09:36:48 - myapp] Android Launch![2010-10-12 09:36:48 - myapp] adb is running normally.[2010-10-12 09:36:48 - myapp] Performing com.mycompany.myapp.MyActivity activity launch[2010-10-12 09:36:48 - myapp] Automatic Target Mode: using device 'xxx'[2010-10-12 09:36:48 - myapp] Uploading myapp.apk onto device 'xxx'[2010-10-12 09:36:48 - myapp] Failed to upload myapp.apk on device 'xxx'[2010-10-12 09:36:48 - myapp] java.io.IOException: Unable to open sync connection![2010-10-12 09:36:48 - myapp] Launch canceled!

解決方案1:拔掉手機連接線再重新連上;

解決方案2:在手機上關閉Debug選項再重新開啟,這個選項在手機的"設定->應用程式->開發->USB調試"裡。

Too many open files

這個問題與系統可同時開啟檔案數量設定有關,但一般不需要修改相關設定,用上一個問題(Unable to open sync connection)的方法即可解決。

第三方Jar包,NoClassDefFoundError

升級ADT版本以後容易出現這個問題:本來一切正常的Android項目,升級以後所有的第三方Jar包裡的類都提示NoClassDefFoundError了。

原因可能出現在不同版本ADT使用的編譯ant指令碼的區別,可能的解決方案有兩個:

方法1:在Eclipse裡右鍵點擊你的Android工程,選擇"Properties->Java Build Path->Order and Export",在這裡把所有第三方Jar包前面的複選框都勾上。

方法2:檢查你的第三方Jar包檔案是否放在工程目錄下的"libs"目錄,如果不是,改過來。

Failed to allocate memory: 8

一般是AVD的設定有問題,很可能是RAM值設得太高,降低些試試。早期adt版本裡有個bug,就是RAM值裡必須包含"MB",例如是"512MB"而不是"512",否則提示上述錯誤資訊。

也有人提到過解析度是原因之一,但我沒有實際遇到過,如果只改小RAM沒有解決問題,試著把解析度也調低看看。

參考資料

“Debug certificate expired” error in Eclipse Android plugins

Android error: Failed to install *.apk on device *: timeout

The Android emulator is not starting, showing “invalid command-line parameter”

Solution: Android INSTALL_FAILED_INSUFFICIENT_STORAGE error

Android adb “Unable to open sync connection!”

com.android.ddmlib.SyncException: Too many open files

NoClassDefFoundError - Eclipse and Android

Android emulator failed to allocate memory 8

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.