Android項目是否存在一些XML /佈局/資源限制/編譯工具鏈中的某些點?將一個(未使用的,任何內容)XML佈局文件添加到我的Android項目中會導致應用程序中其他位置出現渲染錯誤。刪除它可以修復它。這是編譯工具鏈某些部分的錯誤,我該如何診斷/修復它?添加兩個XML文件導致渲染錯誤/某事。笏?
一些額外的背景:
我有一個比較大的Android項目。今天,我在添加一個功能時遇到了一個問題:在我旋轉應用程序之前,無法渲染背景的按鈕。其他背景/風格/風格的按鈕仍然有效,但是這個背景在應用程序中隨處可見。旋轉修復了它所在的屏幕以及按鈕的後續實例,直到重新啓動應用程序的進程。
經過試驗和錯誤,並平分和實驗的很多,我有一個最小的再現是完全可靠的一些級別:增加了兩個XML佈局文件,以我目前的項目引發的bug。具體而言,在唯一的/ res/layout文件夾中添加第40個XML文件。刪除它可以使按鈕正確渲染,添加它會破壞它。
這些文件可以完全不用,完全從頭開始,任何內容和任何名稱。沒有其他項目更改。我正在運行最新版本的Eclipse和Android SDK - 如果需要,我可以獲得特定的版本號。它已經在同類設置的同事機器上覆制了這個項目。我已經清理,重建,手動刪除構建產品,重新啓動計算機,錯誤仍然存在。
必須有更具體的東西造成它,我很樂意提供幫助縮小範圍的建議。不幸的是,它超出了我對Android構建系統的瞭解,而且它似乎並不是我直接造成的。誰能幫忙?或者指點我一些更多的資源?
更多細節:
- (無法相信我忘了這一點)這似乎只在2.3.6設備我有發生。它可能會在其他2.x版本上發生,但是4.2.2會始終正確呈現按鈕(儘管我沒有/不能排除其他位置的錯誤)。我今天會嘗試模擬器。
- 發生在多個Android設備上,儘管它們基本都是股票(沒有自定義主題等)。
- 當前的應用程序設置是一個核心應用程序項目,其他三個項目使用該核心項目通過清單合併生成不同的構建(開發,生產等)。
- 這個特殊的可繪製資源應該有一個唯一的R id,所以它不會在那裏發生碰撞。我沒有把它與系統的R值進行比較 - 有沒有一種好的方法來做到這一點?
- 目標SDK = 17,最小= 8
也很有趣:重命名從 「rounded_teal_button_normal」 提拉文件 「rounded_teal_button_nrml」 並不能改變什麼,但將其更改爲 「rounded_teal_button_aargh」 確實是。只有重要的區別我可以看到,「nrml」不改變文件的字母順序,而「aargh」(有「_disabled」文件和「_pressed」)。但是,這會導致現在處於「正常」位置的繪圖停止繪圖。
更改項目的按鈕狀態,選擇的順序或狀態得到其繪製(甚至刪除所有其他樣式)沒有任何影響。
添加第三 XML文件導致消失的問題,它似乎並沒有被引起按字母順序附近可繪打破,但它是非常很難確定它的解決一切和「爲什麼'問題依然存在。
將xml佈局添加到項目中沒有限制。但它會減慢你的應用程序。越來越多的android xml意味着更多的UI被誇大和渲染。 –