当我拥有项目main_app时,我能够使用 -
访问资源int resId = getResources().getIdentifier("xml/" + rule_file, "string", "com.main_app.main");
现在,我的项目main_app是项目test_app的库项目。
但是当我运行test_app时,我总是在 -
处获得异常int resId = getResources().getIdentifier("xml/" + rule_file, "string", "com.main_app.main"); //Line 5456
错误日志 -
03-04 15:53:50.158: E/AndroidRuntime(29898): Caused by:
android.content.res.Resources$NotFoundException: Resource ID #0x0
03-04 15:53:50.158: E/AndroidRuntime(29898): at
android.content.res.Resources.getValue(Resources.java:1017) 03-04
15:53:50.158: E/AndroidRuntime(29898): at
android.content.res.Resources.loadXmlResourceParser(Resources.java:2102)
03-04 15:53:50.158: E/AndroidRuntime(29898): at
android.content.res.Resources.getXml(Resources.java:905) 03-04
15:53:50.158: E/AndroidRuntime(29898): at
com.main_app.main.ClainFragment$23.run(ClainFragment.java:5456)
答案 0 :(得分:0)
@blackbelt评论说,
包名称应该是项目test_app的包,它是我们在项目test_app的清单文件中定义的包,如 -
package="com.test_app.main"
使用像< - p>这样的行进行硬编码
int resId = getResources().getIdentifier("xml/" + rule_file, "string", "com.main_app.main");
错了。
已更改为 -
int resId = getResources().getIdentifier("xml/" + rule_file, "string", getActivity().getPackageName());
有效!