Android Studio中R文件丢失的解决办法

刚才折腾AS制作一个小项目,本来用的好好的突然一下无法运行到模拟器或测试机上了,MainActivity.java文件中R报红,提示"cannot resolve symbol R"


消息窗口提示了错误信息(起始当时根本没怀疑id会有问题,也是绕了一大圈才回过头来纠错):



同时项目目录下的R文件也离奇失踪:



stackoverflow上看了一下老外们的撕逼,大都说的是让Build--Rebuild Project或者Build--Clean Project。试过了都无效,于是开始硬着头皮排除法一点一点的测试。


这是修复前activity_main.xml下的代码:

    <TextView
        android:id="@+id/text_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Quantity"
        android:textAllCaps="true"
        android:textSize="32sp"
        android:textStyle="bold"
        android:layout_centerHorizontal="true"
        android:layout_above="@+id/text_sum"
        android:layout_marginBottom="16dp"/>
    <TextView
        android:id="@+id/text_sum"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="0"
        android:textSize="40sp"
        android:textStyle="italic"
        android:layout_above="@id/text_p"
        android:layout_marginBottom="40dp"
        android:layout_centerHorizontal="true"/>

由于之前消息框里提示了“at ' layout_above ' with value ' @id/text_p' ”

那就把它烧掉好咯。删掉之后再次Build -- Rebuild Project   我擦嘞!!!居然好了。 R文件也乖乖滚回来了。



那现在至少确定肯定是 这一行代码出问题了:

android:layout_above="@id/text_p"


但我要布局总得使用layout_above属性啊,难道layout_above这条属性有BUG???正发愁的时候突然冒出个想法,因为 之前看Google的官方教程时清楚记得他们演示代码的时候引用的这一行也会在@后面添加一个加号(+)。但自己练习的时候确实在引用id的时候从没加过+号也没出过问题啊。于是开始测试,将引用id的代码也都加上+号:

android:layout_above="@+id/text_p"


再次测试,成功



大致想了一下,@+id/ 新建的ID需要记录到R文件中,或许是代码运行时需要重新写入,而新建的ID直接被其他View调用时出现了一些问题,具体内部原理现在还不清楚,待到之后慢慢学的多了弄懂原理了再来更新这篇文章。


至此,消耗将近两个小时,终于解决了这个问题,记录下来,希望也能帮到有需要的朋友,虽然可能在大神眼里这都是一些脑残的BUG,但小白们通过自己的努力成功解决问题还是很容易骄傲的!!!大笑 加油!


  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值