解析活动期间出错

时间:2011-02-17 09:37:58

标签: java android

我已经创建了一个基于问题答案的应用程序,这个问题曾经是基于图片的随机问题。编码没有错误,应用程序成功运行。它进入主页面并进入第二个但是当我转到问题答案部分时,图像已经显示并且没有更多的进一步动作,我的代码的解析活动从这里开始它不会更进一步。

当我在我的编码中放置一个try catch块时,在logcat中它向我们展示了

02-17 14:49:20.582: ERROR/Parsing Pack(1194): Packthumb = butenemethylpropane
02-17 14:49:21.502: ERROR/(1194): orientationvalue1 width = 320 Height = 480
02-17 14:49:21.502: ERROR/(1194): 2130837515
02-17 14:49:21.502: ERROR/(1194): butene_vs_2butene
02-17 14:49:21.532: ERROR/Timerview(1194): L= 20W= 15H= 200
02-17 14:49:21.562: ERROR/ParsingActivity oncreate(1194): ERROR =     android.content.res.Resources$NotFoundException: Resource ID #0x0

以下是我对解析活动的编码

try 
        {
            resID = getResources().getIdentifier(name, "raw", "com.menteon.speedimage0102");
            saxparserfactory = SAXParserFactory.newInstance();
            saxparser = saxparserfactory.newSAXParser();
            xmlreader = saxparser.getXMLReader();

            //getting the path of xml to parse
            inputstream = this.getResources().openRawResource(resID);

            xmlreader.setContentHandler(myXMLHandler);
            //parsing the xml
            xmlreader.parse(new InputSource(inputstream));

            //getting the values of xml
            item = myXMLHandler.getitem();
            menteon = myXMLHandler.getmenteon();
            polygon = myXMLHandler.getpolygon();
            point = myXMLHandler.getpoint();


            orientation = menteon.getOrientation();
            o = menteon.getItem().size();
            Log.e("ParsingActivity", "Orientation = "+orientation);
            Log.e("ParsingActivity", "menteon size = "+o);

            //calling function for random number
            qnumber();

            if(orientation.equalsIgnoreCase("portrait") && orientationvalue==2 )
            {
                alertportrait(orientation, orientationvalue);   
            }
            else  if(orientation.equalsIgnoreCase("landscape") && orientationvalue==1 )
            {
                alertlandscape(orientation, orientationvalue);
            }
            if(orientation.equalsIgnoreCase("portrait") && orientationvalue==1)
            {
                setRequestedOrientation(1);
                alertstart();
            }
            else if(orientation.equalsIgnoreCase("landscape")&& orientationvalue==2)
            {
                setRequestedOrientation(2);
                alertstart();
            }

        }
        catch (Exception e) 
        {
            e.printStackTrace();
            Log.e("ParsingActivity oncreate", "ERROR = "+e);
        }


}   

请帮我调试我的错误

2 个答案:

答案 0 :(得分:2)

看着这个:

ERROR =     android.content.res.Resources$NotFoundException: Resource ID #0x0

我怀疑您正在尝试查找ID为“#0x0”的资源,但它不存在。可能你没有要求真正的身份证。我看到这个代码适用于资源:

resID = getResources().getIdentifier(name, "raw", "com.menteon.speedimage0102");
inputstream = this.getResources().openRawResource(resID);

为了进行调试,我会记录resID,以检查第一行的内容。并检查这是否确实是正确的资源:我认为调用getIdentifier可能会出错?

答案 1 :(得分:1)

错误来自

resID = getResources().getIdentifier(name, "raw", "com.menteon.speedimage0102");

导致异常

android.content.res.Resources$NotFoundException

无法找到请求的资源时,资源API会抛出此异常。

请确保您拥有与指定名称相同的资源。

希望这会对你有所帮助。