* 最近幫團隊同事配置gradle時,發現一個非常奇怪的問題:
> * 同樣的gradle配置的項目,只是修改了一個項目的名稱,竟然會出現以下奇怪問題:
## 現象
1. 一個編譯完全OK,另外一個編譯出現各種問題
2. mac上兩個都能正常編譯,windows上其中一個編譯通不過
主要Error如下:
```
No resource found that matches the given name (at drawable with value @drawable/xxxxxxxxxxxxxxxxxxxxxxxx)
```
我們做了各種排除,最后發現問題的特點:
兩個項目,一個可編譯,一個編譯失敗,區別在於,文件路徑不一樣長,文件名不一樣長,最后由這個想到了是不是這個原因了,mac沒有類似限制……
不查不知道啊,一查嚇一跳:
## 原因
> `windows限制路徑字符長度最大值: 260……`[查看這是為何](http://stackoverflow.com/questions/1880321/why-does-the-260-character-path-length-limit-exist-in-windows)
因為gradle編譯時引用 build目錄下拉取的aar路徑層次太深,超過260,編譯時不通過,這就是為什么很同用windows的同學,會在配置完全OK的情況下編譯失敗.
## 解決方案:
1. 整個項目挪到根目錄,項目文件名改短,暫時解決這個問題
2. 換用Linux系統 或者Mac電腦
## 結束語
windows真是坑啊,這個問題和Android的65536現象極為相似啊!!!