Android字符串资源无法访问:android.content.res.Resources $ NotFoundException:字符串资源ID
问题描述:
我试图将所有字符串都放入该strings.xml文件中。 现在,如果我尝试运行它,我得到这个:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: de.hsd.ip2.wgapp, PID: 20467
android.content.res.Resources$NotFoundException: String resource ID #0x7f060061
at android.content.res.Resources.getText(Resources.java:321)
at android.content.res.Resources.getString(Resources.java:407)
at de.hsd.ip2.wgapp.Firebase.DatabaseContact.addRoom(DatabaseContact.java:215)
at de.hsd.ip2.wgapp.DialogfragmentCleaningSchedule$5.onDataChange(DialogfragmentCleaningSchedule.java:242)
at com.google.firebase.database.Query$1.onDataChange(Unknown Source)
at com.google.android.gms.internal.zzajp.zza(Unknown Source)
at com.google.android.gms.internal.zzakp.zzcxi(Unknown Source)
at com.google.android.gms.internal.zzaks$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5294)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
这是我的strings.xml:
<resources>
[...]
<!-- Firebase Strings -->
<string name="fLat">Flat</string>
[...]
</resources>
R档有这个条目该字符串:
public static final int fLat=0x7f060061;
,如果我右键点击任何R.strings.fLat并使用“查找用法”,我会看到正确的文件夹属性值:
哦,在那里我设法得到它的时候,我也尝试让另一个字符串和一个作品,我甚至改名为平扁,但它只是不工作..
fReference.child(Resources.getSystem().getString(R.string.fLat)).child(Integer.toString(flatId))
.child(Resources.getSystem().getString(R.string.cleaning))
.child(title)
.setValue(r)
我得到的R.string.cleaning没有问题..
预先感谢任何想法:)
答
您不容访问你的资源与Resources.getSystem()
。像API定义:
返回全局共享资源的对象,它提供了唯一的系统资源的访问(没有应用程序资源)
,而不是你应该使用类似
context.getResources().getString(R.string.fLat)
,
或如果你在一个活动内:
getResources().getString(R.string.fLat)
。
所以,你的代码必须是:
fReference.child(getResources().getString(R.string.fLat)).child(Integer.toString(flatId))
.child(getResources().getString(R.string.cleaning))
.child(title)
.setValue(r)
'Resources.getSystem()'是不是你的应用程序的'Resources'。 –