2012-10-29 36 views
0

我在尝试调试Resources$NotFoundException时遇到了一些问题。我试图从一个枚举项添加到动态一AlertDialog无法调试ResourceNotFoundException

下面是从我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) 
... 
... 
... 

我真的失去了为什么发生这种情况。有关为什么找不到资源的任何想法?

回答

3

你应该真的把循环中的语句分成几个语句,它们完成一件事情。

这样你会更好地看到你的问题在哪里。

+0

在我的模拟器或手机上本地运行代码不会引发异常。 –

+0

你应该在你的问题中写下这个。你是否检查过包中包含'strings.xml'? – Kai

+0

它似乎是。我使用了我上传到Play商店的APK,并运行APKTool进行反编译。我在其中找到了'strings.xml',这些字符串存在于文件中。我在我的手机上安装了该APK,甚至工作得很好。 –