我在尝试调试Resources$NotFoundException
时遇到了一些麻烦。我正在尝试动态地将枚举项添加到AlertDialog
:
以下是我Activity
的代码:
final ArrayList<CharSequence> lstChoices = new ArrayList<CharSequence>();
for (TrendingManager.Filter fltFilter : TrendingManager.Filter.values()) {
lstChoices
.add(getResources()
.getString(
getApplicationContext()
.getResources()
.getIdentifier(
fltFilter.name().toLowerCase(),
"string",
getApplicationContext()
.getApplicationInfo().packageName)));
}
以下是枚举列表:
public class TrendingManager {
public static enum Filter {
ONLY_PRIVATE, ONLY_PUBLIC, ONLY_HQ, ONLY_LQ
};
}
我已经在我的strings.xml
中定义了所有这4个枚举,并且它可以在我的手机上运行,但我从用户的手机上收到崩溃报告,其中说:
android.content.res.Resources$NotFoundException: String resource ID #0x0
at android.content.res.Resources.getText(Resources.java:260)
at android.content.res.Resources.getString(Resources.java:344)
at com.mridang.myapp.Trend.onOptionsItemSelected(Trend.java:230)
at android.app.Activity.onMenuItemSelected(Activity.java:2564)
...
...
...
我真的迷失了为什么会这样。关于为何找不到资源的任何想法?
答案 0 :(得分:3)
你应该把循环中的语句拆分成几个完全一样的语句。
通过这种方式,您可以更好地了解问题所在。