android程式問題及解決方案
來源:互聯網
上載者:User
1. 編譯報錯,找不到R相關資源在源碼目錄下建立一個應用,或者複製其它應用時,常出現這個錯誤。1) 什麼是R.javaR.java中編譯時間自動產生的,工程用到所有的資源,都會用到R.java2) 何時產生在源碼根目錄下make全部代碼時,才會對每個模組產生R.java對資源更改後也會重新成生R.java3) 產生在哪裡out/target/common/obj/APPS/程式名/…../R.java (用find找一下)4) 解決方案只要把相關的R.java都刪掉再更新資源(res目錄)中一個資源檔(xml),使得R.java重建重新mm2. 查看當前堆棧調用關係$ rm /data/anr/traces.txt 清除之前log資訊,因為log資訊是追加到此檔案中的$ ps 找應用對應進程號$ kill -3 進程號 該進程當前的堆棧調用寫入traces.txt$ cat /data/anr/traces.txt 查看堆棧資訊3. 修改framework帶來的介面顯示不正常重編公用控制項時,新產生了framework.jar,常用把它複製到裝置中/system/framework/目錄下的方法調試,有時會遇到替換framework.jar帶來的資源不對的問題,即有些文字和圖片顯示不正常了。這是由於framework.jar和system目錄中其它的資源ID不統一造成的。解決辦法是重做system.img並把它燒寫到系統中(參見燒寫文檔),以下兩種方法重做system.img1) 使用打包命令$ out/host/linux-x86/bin/mkyaffs2image -f out/target/product/qsd8250_surf/system out/target/product/qsd8250_surf/system.img2) 在編譯時間加snod參數,以重建系統鏡像(system.img)$ mm snod4. 列印當前類名和包名1) 列印當前類名Log.d(“TEST”, “class “ + this);2) 列印當前包名Log.d(“TEST”, “package” + context.getPackageName());5. 程式中等待的實現import java.lang.Thread; // sleep屬於Thread類
try { // sleep必須使用try Thread.sleep(50);} catch (InterruptedException e) {}