cannot resolve symbol 'R'的解决方法汇总
本人遇到这个问题,卡了很久,找了许多资料,汇总一下。
一:有可能事程序崩溃或者强制关闭,导致文件丢失
解决方法:点击菜单中的 “File” -> “Invalidate Caches / Restart”,然后点击对话框中的 “Invalidate and Restart”,清空 cache ,重启
。
二:xml文件有错误,因为‘R’文件来源于.java文件的layout的xml文件,如果xml文件有错误,就不会生成R文件,自然就会报错。(本人就是卡在这里,因为xml有错误的话,系统不会报错,需要自己耐心一行行看)
三、资源文件错误,将R文件复制到项目的另外一个位置时,android studio报出一个提示,File size exceeds configured limit (2560000),文件大小限制,Intellij IDEA对单个文件的大小默认限制为2500kb,
我们可以调整这一个数值,从快捷方式里可以找到Android sthdio的文件地址,找到idea.properties文件,用记事本打开,修改idea.max.intellisense.filesize=2500后将2500改成5000,,,
四、
当gradle build tool 为3.3.2,distributionUrl为gradle-4.10.1-all.zip时,会出现R文件飘红但工程能正常编译和运行;当我把gradle build tool改为3.2.1, distributionUrl改为gradle-4.6-all.zip后,就正常了。当前Android Studio版本为3.2.1。
我再尝试把Android Studio升级到最新的3.3.2后,也修复了R文件飘红的问题,我猜测可能gradle build tool的版本要和as版本保持一致或者比as版本低。(这是从知乎上找的,我没有遇到过这种问题)
五、很多时候编程因为一个错误卡了很久,然后重启一下ide就解决了,你可以尝试一下,或者是redebug,重新debug一下或许问题自己消失了。。。(玄学)
最后我还是想强调一下第二条,xml文件有错误,因为xml有错误不容易被发现,或许button id 掉了一个@或者一个+号,一个/,这些都不容易被发现。
android:layout_margin="10dp"
android:margin="10dp"
如果这两个同时存在,不会报错,但是就是没有R文件,很多xml的小错误都可能会导致cannot resolve symbol 'R'。。请大家注意。。
如果还有其他解决方法,还请大家评论。谢谢