无法调试ResourceNotFoundException

时间:2012-10-29 12:03:24

标签: java android

我在尝试调试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)
...
...
...

我真的迷失了为什么会这样。关于为何找不到资源的任何想法?

1 个答案:

答案 0 :(得分:3)

你应该把循环中的语句拆分成几个完全一样的语句。

通过这种方式,您可以更好地了解问题所在。