以文本方式查看主題 - 曙海教育集團論壇 (http://www.hufushizhe.com/bbs/index.asp) -- Android應用開發 (http://www.hufushizhe.com/bbs/list.asp?boardid=45) ---- Android應用程序開發常見問題匯總 (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=45&id=2032) |
-- 作者:wangxinxin -- 發布時間:2010-12-3 11:31:13 -- Android應用程序開發常見問題匯總 問:在平時Android開發時突然執行程序,出現了 Application does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses- libraryandroid.test.runner的錯誤提示?
答:這主要是你在Run As中錯誤的選擇了目標為Android JUnit Test這項導致的,解決的方法也很簡單在Run Dialog中刪除JUnit Test這條即可。 =================================================== 問:出現 NSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES的錯誤提示怎么辦? 答:這樣的問題主要是簽名沖突 造成的,比如你使用了ADB的debug權限簽名,但后來使用標準sign簽名后再安裝同一個文件會出現這樣的錯誤提示,解決的方法只有先老老實實從手機 上卸載原有版本再進行安裝,而adb install -r參數是無法解決這個問題。 ==================================================== 問:裝了Android 1.5版本后,發現過去的ADT 0.8版本插件無法自動更新怎么辦? 答:Google已經將Android進行了大的調整,我們安裝1.5版 SDK必需先先卸載過去的0.8或更早版本插件。 步驟為: 在Eclipse的菜單中找到 Help > Software Updates > Manage Configuration. 展開左邊樹圖,找到Android Editors 0.8.0.v200809220836-110569,單擊鼠標右鍵咋彈出的菜單中選擇Uninstall即可。 ===================================================== 問:使用 Eclipse+ADT開發調試Android軟件時發現安裝一個apk文件出錯,出現類似Re-installation failed due to different application signatures.You must perform a full uninstall of the application. WARNING: This will remove the application data! Please execute \'adb uninstall om.android123.Demo\' in a shell.的錯誤? 答:主要原因是ADT 插件賦予APK文件debug簽名時數字效驗出錯可能因為ADT版本不同、APK不是這臺計算機生產的在模擬器或Android手機上,解決的方法可以直 接在真機中刪除該程序,重新執行即可,或在shell中直接adb uninstall 后重新安裝。 ======================================================= 問:Android 使用什么語言開發? 答:Android SDK僅提供了Java語言的開發包,但和Sun Java Micro Editon不兼容,需要使用Google Dalvik虛擬機可以識別的Java語言,更多參考Android SDK。目前不支持C/C++等其他語言,但通過ARM C++交叉編譯 器可以通過靜態庫方式在Android模擬器上執行本地C++程序,但最終由于權限等問題可能無法在Android手機上使用。 ======================================================== 問:無法對 jar 進行簽名:java.util.zip.ZipException: invalid entry compressed size (expected xxx but got xxx bytes)怎么辦? 答:這些問題主要是由于資源文件造成的,對于android開發來說 應該檢查res文件夾中的文件,逐個排查。這個問題可以通過升級系統的JDK和JRE版本來解決。。 ========================================================== 問:Android程序為什么沒有退出設計? 答:Google Android平臺在設計程序聲明周期上比較特殊,可能是考慮到第二次加載時保證速度的原因而沒有強制加入內存釋放問題,所有的資源回收由Dalvik GC自動完成,所以在設計開發時一定要注意Activity和 Service類的生命周期問題,顯示在最上層的窗口將有最高的優先級,當Android操作系統內存不夠用時自動將會根據歷史棧按優先級強制殺掉進程。 =========================================================== 問: 開發過程中為什么Android系統去除了一些實用的類,比如Base64? 答:很早在Android.Util中我們可以看到Base64編碼 類,但是到了Android 0.9時轉移到了org.apache.http中,最后到了Android 1.0時去除了,但是系統仍然內部存在該類,Base64編碼除了在二進制文件傳輸有用外,系統的PIN密碼框加密也采用了Base64編碼,最終還是去 除了,我們可以通過自己實現對照表等方式來實現這個方法,比如在ESTMP這樣的郵件服務器中用戶名和密碼仍然需要Base64加密。 =========================================================== 問:Can\'t upload xxx.apk問題怎么解決? 答:當前工程在編譯后沒有生成相關apk文件,apk文件一般位于工程的bin目錄下,里面還會存 放.class文件=>dex文件。Android開發網提醒這類錯誤IDE一般沒有提示錯誤信息,如果工程不是很龐大的話,可以重新創建一個工程 逐一分析。 |