android解析xml NullPointerException
你好,我的应用程序有问题,当我运行它时,它停止了。这让我明白:android解析xml NullPointerException,android,parsing,nullpointerexception,Android,Parsing,Nullpointerexception,你好,我的应用程序有问题,当我运行它时,它停止了。这让我明白: 09-19 11:15:42.941: W/dalvikvm(6202): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 09-19 11:15:43.083: E/AndroidRuntime(6202): FATAL EXCEPTION: main 09-19 11:15:43.083: E/AndroidRuntime(620
09-19 11:15:42.941: W/dalvikvm(6202): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
09-19 11:15:43.083: E/AndroidRuntime(6202): FATAL EXCEPTION: main
09-19 11:15:43.083: E/AndroidRuntime(6202): java.lang.RuntimeException: Unable to start activity ComponentInfo{cz.bakalari.bakalari/cz.bakalari.bakalari.ParseActivity}: java.lang.NullPointerException
09-19 11:15:43.083: E/AndroidRuntime(6202): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
09-19 11:15:43.083: E/AndroidRuntime(6202): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
09-19 11:15:43.083: E/AndroidRuntime(6202): at android.app.ActivityThread.access$600(ActivityThread.java:141)
09-19 11:15:43.083: E/AndroidRuntime(6202): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
09-19 11:15:43.083: E/AndroidRuntime(6202): at android.os.Handler.dispatchMessage(Handler.java:99)
09-19 11:15:43.083: E/AndroidRuntime(6202): at android.os.Looper.loop(Looper.java:137)
09-19 11:15:43.083: E/AndroidRuntime(6202): at android.app.ActivityThread.main(ActivityThread.java:5041)
09-19 11:15:43.083: E/AndroidRuntime(6202): at java.lang.reflect.Method.invokeNative(Native Method)
09-19 11:15:43.083: E/AndroidRuntime(6202): at java.lang.reflect.Method.invoke(Method.java:511)
09-19 11:15:43.083: E/AndroidRuntime(6202): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-19 11:15:43.083: E/AndroidRuntime(6202): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-19 11:15:43.083: E/AndroidRuntime(6202): at dalvik.system.NativeStart.main(Native Method)
09-19 11:15:43.083: E/AndroidRuntime(6202): Caused by: java.lang.NullPointerException
09-19 11:15:43.083: E/AndroidRuntime(6202): at cz.bakalari.bakalari.XML_Parser.getValue(XML_Parser.java:112)
09-19 11:15:43.083: E/AndroidRuntime(6202): at cz.bakalari.bakalari.ParseActivity.onCreate(ParseActivity.java:45)
09-19 11:15:43.083: E/AndroidRuntime(6202): at android.app.Activity.performCreate(Activity.java:5104)
09-19 11:15:43.083: E/AndroidRuntime(6202): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
09-19 11:15:43.083: E/AndroidRuntime(6202): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
09-19 11:15:43.083: E/AndroidRuntime(6202): ... 11 more
这是我的活动:
public class ParseActivity extends Activity {
static final String KEY_XML = "xml";
static final String KEY_VERZE = "verze";
static final String KEY_BKTYP = "bktyp";
static final String KEY_STATUS = "status";
static final String KEY_UTYP = "utyp";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_parse);
XML_Parser parser = new XML_Parser();
String xml = "<xml><verze>1.0</verze><bktyp>LOGIN</bktyp><status>OK</status><utyp>R</utyp></xml>";
Document doc = parser.getDomElement(xml);
NodeList nl = doc.getElementsByTagName(KEY_XML);
Element e = (Element) nl.item(1);
TextView parseview1 = (TextView) findViewById(R.id.parseview1);
TextView parseview2 = (TextView) findViewById(R.id.parseview2);
TextView parseview3 = (TextView) findViewById(R.id.parseview3);
parseview1.setText(parser.getValue(e,KEY_VERZE));
parseview2.setText(parser.getValue(e,KEY_BKTYP));
parseview3.setText(parser.getValue(e,KEY_STATUS));
};
}
你能看到那个问题吗?我是android开发新手,所以我需要一些简单的答案。NodeList.item在NodeList中的索引位置返回node,如果不是有效的索引,则返回null 您的xml只有一个元素“xml” yoyr节点列表大小为1 试着替换
Element e = (Element) nl.item(1);
到
一个简单的问题。XML_解析器中的第112行是什么?是线路引起了问题。非常感谢。这就是我需要的。
NodeList nl = doc.getElementsByTagName(KEY_XML);
Element e = (Element) nl.item(1);
Element e = (Element) nl.item(0);