java - R.string Resources $ NotFoundException在Android应用程序上的错误

标签 java android error-handling resources classnotfoundexception

我有一个多语言的android应用程序。

<string name="FOOD_SUGGESTED">Top Ristoranti</string>

在res/values-it/strings.xml中

和这个
<string name="FOOD_SUGGESTED">Top Restaurants</string>

在res/values-en/strings.xml中。

在Java中我使用此值
String suggested = getResources().getString(R.string.FOOD_SUGGESTED);
referenceTextView.setText("" + related.size() + " " + suggested);

有时,通过Android Vitals我遇到了此错误
android.content.res.Resources$NotFoundException: 
    at android.content.res.Resources.getText (Resources.java:1178)
    at android.content.res.Resources.getString (Resources.java:1224)
    at com.a70division.blink.CardViews.GenericCardView.<init>(GenericCardView.java:78)
    at com.a70division.blink.Card.getViewForCard (Card.java:190)
    at com.a70division.blink.Card.<init> (Card.java:92)
    at com.a70division.blink.Fragments.DeckFragment.createCardView (DeckFragment.java:251)
    at com.a70division.blink.Fragments.DeckFragment.nextCard (DeckFragment.java:354)
    at com.a70division.blink.Fragments.DeckFragment.access$700 (DeckFragment.java:53)
    at com.a70division.blink.Fragments.DeckFragment$11.run (DeckFragment.java:429)

我不明白错误在哪里

有人可以帮助我吗?

最佳答案

确保您还在根路径res/values/strings.xml下添加了该资源。如果您不这样做,那么如果设备的语言不是英语(en)或意大利语(it),则应用程序将崩溃。

另外,我建议您以小写形式定义资源ID(仅用于名称约定):

<string name="food_suggested">Top Restaurants</string>

最后,确保您的字符串资源包含在<resources> </resources>标记之间,这是强制性的:
<resources>
    <string name="food_suggested">Top Restaurants</string>
</resources>

关于java - R.string Resources $ NotFoundException在Android应用程序上的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51422334/

相关文章:

java - 为什么这个字符串分词器让我转换为字符串?

android - 在 android camera2API 中控制传感器 ISO 和曝光时间

javascript - 使用 node.js 创建缓冲区期间捕获错误

java - 获取同一个对象到Android ListView

java - 使用外部 JAR 和 MAVEN 制作 JAR 时出现问题

android - android wear通知的背景图片

ruby-on-rails - 开始救援未捕获错误

java - SPOJ上的Java错误

java - 使用 JavaFX 设置响应式布局

android - 如何增加 flutter 中切屑的宽度