当我尝试使用以下代码Field[]fields=R.raw.class.getFields();
当我将任何文件添加到原始文件夹时,相同的代码也有效。该文件夹位于“ res”目录中。
注意:我也尝试使用完整的软件包名称。
答案 0 :(得分:1)
创建Android resource folder
,layout
,drawable
等mipmap
时,Android会创建一个名为R.java
的文件。您可以在
app\build\generated\source\r\degug\your\app\package\name\R.java
。
这基本上是一个普通的Java文件,由android自动生成,用于通过代码中的id引用资源。
R.java
public final class R {
public static final class layout{
public static final int main_activity=0x7f0a0000;
public static final int login_activity=0x7f0a0001;
}
public static final class drawable{
public static final int ic_add=0x7f0a0000;
public static final int ic_edit=0x7f0a0001;
}
public static final class mimap{
public static final int ic_launcher=0x7f0b0000;
}
}
在Android官方网站上:
资源是代码中的其他文件和静态内容 用途,例如位图,布局定义,用户界面字符串, 动画说明等。
这意味着res
文件夹为read-only
,并且您无法修改(添加,更新,删除)内容侧。
回到您的问题,当您创建raw
文件夹但不放入任何文件并且android知道在运行时您也无法修改此文件夹时,为什么我们需要创建一个指向{ {1}}的资源了。它没有任何意义。由于raw
中没有raw
类,因此您的编译器将显示错误。
R.java
但是,如果您创建文件并将其放入cannot resolve symbol raw
文件夹中,则在构建过程之后,将在raw
文件中创建类raw
。
R.java
现在错误消失了。
答案 1 :(得分:0)
我认为问题是您使用了错误的 R 软件包。 确保R应该来自您的包名称,而不是其他一些android Native类。