此代码看起来正确的代码:
int resId = getApplicationContext().getResources().getIdentifier("About_EmailPrompt", "string", "com.yoki.android.cat");
,它应该工作,但如果没有,我劝你不要试图解决这个问题,并试图了解为什么它不工作:
1)首先试图找到在你的项目/项目未来declarated领域:
About_EmailPrompt
如果你正在使用你文摘应该按按Ctrl + H和开放的Java搜索标签
如果你搜索去结果第2步,否则转到步骤3
2)你应该得到的结果作为层次
<YOUR_PACKAGE_NAME>
-- R
-- string
-- About_EmailPrompt
2.1)检查你在你的代码中写入正确的包名
.getIdentifier("About_EmailPrompt", "string", <YOUR_PACKAGE_NAME>);
2.2)检查您在文字字符串中只使用拉丁字符:
"About_EmailPrompt"
和
"string"
2.3)检查你name
属性在strings.xml
<string name="About_EmailPrompt">SOME_VALUE</string>
只使用拉丁字符
3)如果您没有搜索结果
3.1)检查你使用你的文本字符串只是拉丁符号:
"About_EmailPrompt"
3.2)检查你name
属性在strings.xml
<string name="About_EmailPrompt">SOME_VALUE</string>
3.3只使用拉丁字符)做清洁和构建对于您所有的项目
PS如果这对你没有帮助,尝试重新启动你的IDE(有时候eclipse生成R.java不正确,直到重新启动)
你试过对项目执行“clean”吗?可能是一些旧的缓存搞乱了东西...... – Ognyan
你是否检查'R.java'生成的文件中是否定义了'About_EmailPrompt'? –