這些天在寫android應(yīng)用,遇到了一件很詭異的事情: 某個(gè)圖片資源作為背景被設(shè)置到layout上,在eclipse的layout設(shè)計(jì)界面內(nèi)能顯示,但是啟動(dòng)模擬器后圖片完全無法顯示;我將應(yīng)用打包到真機(jī)上測試,發(fā)現(xiàn)圖片能顯示! 但事實(shí)遠(yuǎn)未那么簡單。。后來我將應(yīng)用打包給我的幾個(gè)朋友測試,發(fā)現(xiàn)圖片又是無法顯示。 其中,我的應(yīng)用支持的版本是2.1,模擬器版本是2.1,我的機(jī)器版本是4.0,兩個(gè)朋友的機(jī)器分別是2.1和2.3。于是我猜想該圖片在2.1和2.3上不兼容,于是單獨(dú)建立一個(gè)工程,對該圖進(jìn)行測試,結(jié)果發(fā)現(xiàn)都能顯示。 為什么這個(gè)圖在我的應(yīng)用上無法顯示,在測試應(yīng)用上可以顯示,而且還是和版本相關(guān)。。。 經(jīng)過一番折騰和各種假設(shè)以及實(shí)驗(yàn)找到了解決方法: 該圖的名字是a打頭,所以排在第一個(gè),android自動(dòng)產(chǎn)生R類資源索引,該圖的索引值是0x7f040000,后面都是0有木有!我發(fā)現(xiàn)只要是索引是0x7f040000的圖片資源,在我的應(yīng)用中都是無法顯示,所以我就再扔進(jìn)去一張沒用的圖片取名叫aaa.png讓它排在第一個(gè)占用掉0x7f040000這個(gè)索引,然后,一切都正常了。 疑問:雖然問題解決了,但是為什么在測試工程中同樣圖片資源索引是0x7f040000也是可以顯示呢?我猜想可能是我的應(yīng)用中使用到了別的一些xml定義的drawable資源產(chǎn)生的沖突吧,也許是android的bug,但具體這個(gè)問題是如何產(chǎn)生的,還是沒搞清楚。。。 |
|