最近剛開始學習Android,找了幾個Demo,研究了一下Android的代碼結構。
今天在調試一個Demo時,修改了布局檔案layout\main.xml,然後ctrl + F11運行, 結果碰到下面的錯誤:
[2010-06-26 16:48:10 - ListViewDemo] Error in an XML file: aborting build.
[2010-06-26 16:48:10 - ListViewDemo] res\layout\main.xml:0: error: Resource entry main is already defined.
[2010-06-26 16:48:10 - ListViewDemo] res\layout\main.out.xml:0: Originally defined here.
同時在layout目錄下又產生了一個空的main.out.xml檔案,覺得很奇怪。
後來發現是Eclipse的問題,修改完main.xml後,當前啟用的Tab頁還是main.xml,所以Eclipse預設就會用xslt轉換這個xml檔案。
為瞭解決這個問題,先刪除layout目錄main.out.xml檔案,再選擇菜單Project->Clean來Rebuild當前的工程。在Package Exploer選中當前工程右鍵Run as->Android Application即可運行工程。或者開啟任一當前工程的java檔案,ctrl+F11就會出現Run as的對話方塊,同樣選擇Android Application即可。
運行過一次工程後,就會在工具列的Run as下拉框裡面出現之次運行過的工程, 點擊下拉的菜單一樣可以運行工程。這裡的之前跑過的工程可以在菜單Run->Run Configurations,對話方塊如下:
這裡可以看到main.xml也會出現XSL結點下,這時可以刪除它們。
總覺得這樣實在太麻煩了,因為布局檔案是經常改動的,快速鍵會經常使用的。不能每次改完main.xml都要把焦點切換到另一個java檔案吧或者去點滑鼠。
後來發現可以在Eclipse裡面配置,菜單Windows->Preference,選擇結點Run/Debug->Lauching,Lauch Operation選擇第一項。
這樣即使當前編輯檔案是xml的話,也不會去轉換這個xml檔案了,而是去運行之前運行過的工程,前提是當前工程運行過一次並且要在之前的Run Configurations把Xsl結點下的main.xml, main.xml(1)之類的無用的刪除了。