Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android getIdentifier无法获取资源的id_Android - Fatal编程技术网

Android getIdentifier无法获取资源的id

Android getIdentifier无法获取资源的id,android,Android,我使用getIdentifier按名称获取原始资源的id。但它不起作用,我肯定会正确使用它。有什么我遗漏的吗 我已经验证了原始资源存在于我给它的字符串下。我还清理了项目,以确保R.java是正确的 id = ctx.getResources().getIdentifier("file_name", null , ctx.getPackageName()); 看起来这些方法需要type/(或defType)参数。根据资源目录,应该类似于drawable或layout 可以将其包含在第一个字符串参

我使用getIdentifier按名称获取原始资源的id。但它不起作用,我肯定会正确使用它。有什么我遗漏的吗

我已经验证了原始资源存在于我给它的字符串下。我还清理了项目,以确保R.java是正确的

id = ctx.getResources().getIdentifier("file_name", null , ctx.getPackageName());

看起来这些方法需要
type/
(或
defType
)参数。根据资源目录,应该类似于
drawable
layout

可以将其包含在第一个字符串参数中:

id = ctx.getResources().getIdentifier("drawable/file_name", null , ctx.getPackageName());
id = ctx.getResources().getIdentifier("file_name", "drawable", ctx.getPackageName());
或将其作为第二个参数传递:

id = ctx.getResources().getIdentifier("drawable/file_name", null , ctx.getPackageName());
id = ctx.getResources().getIdentifier("file_name", "drawable", ctx.getPackageName());

另外,请确保从您传递的文件名中排除文件扩展名。如果方法仍然返回
0
,请检查
file\u name
是否对应于
R.java
文件中的某个id。

太晚了,但我认为这个问题与不正确的应用程序id有关

它在应用程序的module build.gradle文件中配置:

android{
 defaultConfig {
     applicationId "your application id goes here"
从我观察到的情况来看,生成的R文件的packageName似乎基于Manifest.xml文件中packageName的值。但是,context.GetPackageName似乎正在返回配置的applicationId的值。如果它们是一样的,那么就没有问题了。如果它们与对资源的调用不同,则.getIdentifier(…,…,ctx.getPackageName())将无法找到标识符


我不确定上述段落是否完全正确。我实际观察到的是,如果我更改applicationId以匹配Manifest.xml文件中PackageName的名称,那么使用GetIdentifier方法无法获取资源标识符的问题就消失了。我不得不承认,我对自己的问题得到纠正感到有些惊讶。

我两种方法都试过了。我尝试将第二个参数中提供的raw目录设置为“raw”。如果我的
R.java
中没有
文件名,因为我正在动态构建,我该怎么办?我得到了路径和
File imgFile=new文件(arrListspotpics.get(0))