前言
昨天幫我們公司的同事解決一個問題, 他開始給我弄一個eclipse版本的代碼,但是由于代碼質(zhì)量是真的不咋地,又是eclipse結(jié)構(gòu)的代碼, 所以我想給他的代碼進(jìn)行移植,導(dǎo)入成AS能夠識別的方式進(jìn)行編譯,由于我對AS的IDE解決錯誤比較有心得,因為這樣做了. 但是中途出現(xiàn)一個錯誤,這個錯誤是從未見過的,搜遍了全網(wǎng),無論百度還是谷歌,都沒有找到我的答案, 因此我把解決方案分享給大家,希望給大家遇到這種問題時,提供一個可行性的思路.
錯誤記錄
duplicate symbol in table with resource type 'id' and symbol name ' '

眾所周知, 從eclipse的代碼轉(zhuǎn)換到AS中, 肯定會出現(xiàn)各種奇葩問題, 但是作為一個很久沒碰eclipse的人,肯定不一定能夠記得之前eclipse的坑了, 但是我有信心在AS上遇到問題可以解決,但是這一次, 我發(fā)現(xiàn)它完全是沒有任何標(biāo)記可言的,下面我把解決問題的一些想法和思路都說一下,或者能夠為你們提供解決其他類似問題提供解決方案.(大家不要覺得不耐煩, 遇到問題就要細(xì)心去留意每一個可能點)
方案一: 執(zhí)行run with --stacktrace
友情提示: 新版本可能不好找到出現(xiàn)直接執(zhí)行這個的地方,大家可以試試先看方案三.那里有一些提示.

其實它完整的命令是這個
gradlew --stacktrace
但是我們得到的結(jié)果是這樣, 從這個錯誤信息來看,我們沒法通過錯誤信息能夠直觀找出錯誤,因此,我繼續(xù)嘗試,運行提示出來的編譯命令

方案二: 執(zhí)行更詳細(xì)查看錯誤信息的命令
其中完整命令是這樣的.
gradlew --info --debug --stacktrace
我們得到的結(jié)果是這樣的

方案三: 執(zhí)行build命令,如下圖所示
打開AS右邊的側(cè)邊欄Gradle

很多新手朋友,更新AS 3.2以上的版本 ,發(fā)現(xiàn)
方案一和方案二的命令再也找不到了.其實這個命令執(zhí)行之后, 你會發(fā)現(xiàn), 確實可以完全顯示出來. 不信,你看下圖.
從以上的錯誤信息看來,我們還是無法直接找出錯誤信息,
Duplicate symbol in table with resource type 'id' and symbol name ' '
心里真的無語了 ,為什么這個錯誤這么坑? TMD ,氣死我了, 老子去百度,谷歌 行了吧?
結(jié)果百度谷歌一圈后, 泄氣了, 完全沒法解決啊,他們的方法和我都不一樣,怎么辦?
強迫自己冷靜下來,從錯誤信息提示,唯一能夠確定的是資源文件錯了問題, 至于是哪個資源文件出錯, 我們還無法確定.因為我們根據(jù)提示的錯誤. 我想出了一個最笨也是最有效的方法. 那就是一個個排查.
AS是在執(zhí)行task ':app:processDebugResources'這個任務(wù)時,檢查出錯,那么我們就把app module的res文件夾下的每個文件夾進(jìn)行排查.
具體操作如下:
先把所有的res文件夾下的內(nèi)容全部復(fù)制到其他地方,然后把res目錄下的文件夾全部刪除, 然后復(fù)制每復(fù)制一個剛剛放在其他地方的某一個文件夾,粘貼到app module下的res文件夾,然后我們執(zhí)行一次processDebugResources這個命令.
- 提示:
processDebugResources這個命令在側(cè)邊欄的Gradle里面,如下圖所示
找到other節(jié)點打開.png

每復(fù)制一個文件夾之后,就執(zhí)行一次,直到出現(xiàn)相同的錯誤,就可以確定,你復(fù)制的文件夾內(nèi)部有文件夾是有錯誤的,因此可以通過剛剛我們逐個排查的思路,用同樣的方式排查.
最終,我們找到出錯的結(jié)果是, 因為布局文件中,在同一個布局文件中,有相同的Id 命名, 導(dǎo)致編譯報錯,這種錯誤在AS開發(fā)的話,肯定不會出現(xiàn),因為你一寫,就會報錯, 真的是為寫這個代碼的前輩感到捉急.因此,要學(xué)習(xí)安卓開發(fā),就要選AS,不然 ,eclipse的規(guī)范 ,可能真的不敢恭維.
最后我們總結(jié)一下,遇到AS的IDE出錯,也許會出現(xiàn)很多種情況,一定要留心去觀察, 一定要注意統(tǒng)一性,別以為事小,不放在心上, 后面出現(xiàn)的問題,可能讓你束手無策.
最后感謝大家閱讀,并看完本篇文章.
打一波廣告 ,推薦一波 安卓包沖突,包重復(fù)的解決方案(很有效)的文章.歡迎向我提問大家所遇到的其他編譯問題,
請戳↗↗↗wanandroid交流群 記得附上答案: http://www.wanandroid.com哦。
