在VirtualBox中安裝 Ubuntu 12.04 LTS後,如果你沒有啟動 VitualBox 3D 加速,進入 Ubuntu 後使用的是 Unity-2d,如果你想要使用 Unity-3d 你必須要啟動 VitualBox 的 3D 加速。設定的方式如下圖:
但當啟動 3D 加速時,重新啟動虛擬時你也許會遇到 VirtualBox 會莫名的當機,無法正常開啟你的虛擬機,最後更新 Intel G840 HD Graphic 驅動程式後,就解決啟動虛擬機會當機的問題了,如果你有遇到類似的問題,或許可以嘗試更新你的顯示卡驅動程式來解決問題。
2013年12月29日 星期日
如何在 Windows XP 下透過 VirtualBox 安裝 64 bits Ubuntu 12.04 LTS
如果你想要在 Windows XP 下安裝 64 bits Ubuntu 12.04 LTS,你必須確定下列項目你都已經設定好了,才可正常安裝:
即便你點選繼續最後會停在開機畫面無法正常進入 ;其實從上面的訊息中 "請確認在您主機電腦的 BIOS 中已正確啟用 VT-x/AMD-V",就已經告訴你如何解決問題了。只要從新開起進入到 BIOS 中啟動虛擬技術就可以正常的啟動安裝 64 bits Ubuntu 12.04 LTS。
下圖為 ASUS 主機板設定的方式:
後記:
重新安裝電腦後,BIOS 也已經啟動虛擬技術,但 VirtualBox 依然無法正常偵測到 VT-x,找了老半天,還以為是 Windows 7 跟 VirtualBox 哪邊不和需要設定,最後發現是因為安裝了avast free antivirus 的防毒軟體,移除後就可以正常偵測到且可以正常起動Guest OS。之前無法執行 Windows 的磁碟掃描也是因為它。似乎要考慮別的免費防毒軟體了。 XD
[參考資料]
- 啟動 VirtualBox VT-x / AMD-V ( VirtualBOx 4.3.12 如果 BISO 沒有先開啟支援虛擬化技術,加速的頁面是無法點選。), 如下圖:
- 啟動 BIOS 中 CPU 的虛擬化技術(Virtualization technology)。
即便你點選繼續最後會停在開機畫面無法正常進入 ;其實從上面的訊息中 "請確認在您主機電腦的 BIOS 中已正確啟用 VT-x/AMD-V",就已經告訴你如何解決問題了。只要從新開起進入到 BIOS 中啟動虛擬技術就可以正常的啟動安裝 64 bits Ubuntu 12.04 LTS。
下圖為 ASUS 主機板設定的方式:
後記:
重新安裝電腦後,BIOS 也已經啟動虛擬技術,但 VirtualBox 依然無法正常偵測到 VT-x,找了老半天,還以為是 Windows 7 跟 VirtualBox 哪邊不和需要設定,最後發現是因為安裝了avast free antivirus 的防毒軟體,移除後就可以正常偵測到且可以正常起動Guest OS。之前無法執行 Windows 的磁碟掃描也是因為它。似乎要考慮別的免費防毒軟體了。 XD
[參考資料]
2013年12月20日 星期五
2013年12月10日 星期二
2013年12月5日 星期四
LINE: 發生錯誤,請重撥(101),伺服器無法使用請檢查網路連線
最近在家用 LINE 透過 WIFI 打免費電話時,發生一些問題,撥打時沒有 ringtone 而且人家打電話進來也沒有 ringtone 且無法接起電話,最後 LINE 就顯示 "發生錯誤,請重撥(101),伺服器無法使用請檢查網路連線",一度還以為是我的手機問題,氣到想要把它摔掉。後來發現兇手是 WIFI 基地台,今天突然想起,之前我有重新設定 WIFI 基地台,有重新設定防火牆,死馬當活馬醫,我把 "Enable SPI and Anti-DoS firewall protection" 選項給取消後,LINE 終於可以正常撥接了。
2013年12月2日 星期一
修改 Android Emulator 的 Abstracted LCD density
如果你用 ADT 來編輯目前 AVD 的 Abstracted LCD density 值時,你會發現在 Hardware 欄位那邊你只能下拉選擇數值而不能填入你想要的值,如下圖所示:
注意:因為這個 AVD 我是用舊版的 ADT 所產生的,所以還看的到Hardware 的屬性設定。新版的,你可以在 Device Definitions 頁面,按 【New Device...】在新增裝置時設定,但我找不到可以設定 LCD density的數值,它似乎會根據你所設定螢幕解析度的是屬於 ldpi 或者 mdpi 來填入預設的數值。不過修改 LCD density 的方式是一樣的。
從上圖你可以看到只有 120 、160、240...等數值可以選擇,而且你無法修改。修改的方式是到你的 .android 目錄下找到 AVD 資料夾,然後開啟 config.ini 檔案,修改 【hw.lcd.density】的數值即可。如下圖所示:
注意:因為這個 AVD 我是用舊版的 ADT 所產生的,所以還看的到Hardware 的屬性設定。新版的,你可以在 Device Definitions 頁面,按 【New Device...】在新增裝置時設定,但我找不到可以設定 LCD density的數值,它似乎會根據你所設定螢幕解析度的是屬於 ldpi 或者 mdpi 來填入預設的數值。不過修改 LCD density 的方式是一樣的。
從上圖你可以看到只有 120 、160、240...等數值可以選擇,而且你無法修改。修改的方式是到你的 .android 目錄下找到 AVD 資料夾,然後開啟 config.ini 檔案,修改 【hw.lcd.density】的數值即可。如下圖所示:
列印例外訊息 printStackTrace()、toString()、 getMessage()
當我們處理 Java 例外時,通常會在例外捕獲時列印例外的訊息,一般在輸出訊息通常使用 printStackTrace()、toString()、 getMessage() 這三種方法列印出例外訊息。
而輸出訊息的格式請參考下面圖示:
toString()方法 輸出如下
getMessage()方法 輸出如下
printStackTrace()
toString()
getMessage()
[參考資料]
而輸出訊息的格式請參考下面圖示:
- printStackTrace ()方法 輸出如下
java.io.FileNotFoundException: abc.txt (系統找不到指定的檔案。) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source) at ExceptionExample.someMethod(ExceptionExample.java:7) at ExceptionExample.main(ExceptionExample.java:19)
java.io.FileNotFoundException: abc.txt (系統找不到指定的檔案。)
abc.txt (系統找不到指定的檔案。)另外我們故意讓程式丟出 NullPointerException,透過上面三種方法輸出例外訊息,其範例與輸出結果如下:
- 範例
String str = null;
try {
str.length();
} catch (Exception e) {
e.printStackTrace();
}
java.lang.NullPointerException at ExceptionExample.main(ExceptionExample.java:30)
java.lang.NullPointerException
null在上面的 NullPointerException 例子,toString() 與 getMessage() 幾乎沒有任何幫助,基本上,除非是自訂的例外或者可以明顯知道例外的輸出的解果發生在哪個地方,例如,我們只在某個地方開啟特殊的檔案,則我們可以考慮使用 toString() 與 getMessage() 來減少除錯訊息的輸出,否則建議還是直接 printStackTrace() 方法輸出詳細的例外訊息。
[參考資料]
訂閱:
文章 (Atom)
