1. 程式人生 > >eclipse中Android模擬器,DDMS看不到裝置的解決及有時無列印Log

eclipse中Android模擬器,DDMS看不到裝置的解決及有時無列印Log

問題表現:連線手機與電腦後,驅動安裝正確,USB除錯模式開啟,在DDMS中可以看到device及其程序的資訊,但是logcat中就是沒有資訊輸出
問題原因:一些rom預設關閉logcat
問題說明:ddms中裝置名字顯示為問號不影響,即adb get-serialno顯示為問號不影響.
解決方法:
1.需要root許可權(部分rom不需要)
2.開啟logcat,並設定level,執行命令如下(android 升級之後 adb 在 platform-tools中,不在tools中)
adb shell
echo 1 > /sys/kernel/logger/log_main/enable
說明:將1寫入日誌開關檔案,1為開,0為關
echo 2 >/sys/kernel/logger/log_main/priority
說明:將代表level的2寫入優先順序檔案
3.重啟adb,如果使用eclipse,先關閉eclipse,再重啟adb,再啟動eclipse
adb kill-server
adb start-server
4.此時logcat應該可以工作了,如果仍舊不工作,則更新adb
android update adb
5.重複第三步,此時logcat應該可以工作了,如果仍舊不工作,找到個人主目錄下的android目錄,如C:\Documents and Settings\Administrator\.android
找到這個目錄下的adb_usb.ini檔案,其內容預設只有三行,全為註釋,在後面新增一行,內容為0x12d1
6.重複第三步,此時logcat應該可以工作了

以上對於手機除錯列印Log還是沒用,不知道寫這個人當初有沒有試過用手機除錯來列印資訊,反正我試了就是沒有效果,用模擬器的話還是不錯的,用以上方法完全可以。但模擬器不是萬能,昨天我就把我寫的一個程式在模擬器上可以跑起來,但裝真機上就是不行,經除錯時發現我是用公司的測試機做實驗的,測試機上我沒放號碼卡,所以在真機上得到一個空的號碼字串,我在程式裡要把前面的"+86"去掉,在擷取字元長度時,出現了嚴重的陣列越界錯誤,找到修改,OK了。不過有些功能模擬器上是沒有的,手機上的重力感應器、方向感應器、距離感應器等,在模擬器上是沒有的,只能在真機上試,不過android模擬器還是相當的強大,可以滿足大多數的開發。