1. 程式人生 > >android R檔案命名衝突問題

android R檔案命名衝突問題

當專案中引用了其他的library時,有一定概率會出現空指標異常,查詢後發現都是findViewById 返回的View 為空,但是進一步排查後發現id是存在的,那麼問題就出現在R檔案的id對映問題上。
舉個栗子,如果主模組裡有個layout叫做man.xml,引用的library裡也有個layout叫做man.xml,這時候程式碼並不會報錯,但是當生成APK後,R檔案會把主模組的man.xml覆蓋掉library的,這樣會導致當你程式碼中以為引用的是library的man.xml,實際上引用的是主模組的,所以會導致findViewById返回空。
這種情況就算你引用library的全限定名的R檔案也沒用,一旦library和主模組的id重名,就會被主模組的覆蓋,因此解決方案只能是改掉一方的名字,避免衝突。
如果大家有更好的方案,可以提出。