java.lang.NullPointerException xml解析
这段代码应该解析xml并显示它!但它有例外: 02-02 12:36:49.508:I/编舞(1184):跳过了32帧!应用程序可能在其主线程上做了太多工作。 02-02 12:36:50.926:W/System.err(1184):java.lang.NullPointerException 02-02 12:36:50.926:W/System.err(1184):位于com.example.sample.itcuties.android.reader.ITCutiesReaderAppActivity.onCreate(ITCutiesReaderAppActivity.java:52) 02-02 12:36:50.946:W/System.err(1184):位于android.app.Activity.performCreate(Activity.java:5008) 02-02 12:36:50.946:W/System.err(1184):位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 02-02 12:36:50.946:W/System.err(1184):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 02-02 12:36:50.966:W/System.err(1184):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 02-02 12:36:50.966:W/System.err(1184):位于android.app.ActivityThread.access$600(ActivityThread.java:130) 02-02 12:36:50.986:W/System.err(1184):位于android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 02-02 12:36:50.986:W/System.err(1184):位于android.os.Handler.dispatchMessage(Handler.java:99) 02-02 12:36:50.998:W/System.err(1184):位于android.os.Looper.loop(Looper.java:137) 02-02 12:36:51.006:W/System.err(1184):位于android.app.ActivityThread.main(ActivityThread.java:4745) 02-02 12:36:51.018:W/System.err(1184):位于java.lang.reflect.Method.invokenactive(本机方法) 02-02 12:36:51.026:W/System.err(1184):位于java.lang.reflect.Method.invoke(Method.java:511) 02-02 12:36:51.026:W/System.err(1184):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 02-02 12:36:51.036:W/System.err(1184):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 02-02 12:36:51.036:W/System.err(1184):在dalvik.System.NativeStart.main(本机方法) 02-02 12:36:51.046:I/System.out(1184):xml活动Excpetion=java.lang.NullPointerException 02-02 12:36:51.736:I/编舞(1184):跳过39帧!应用程序可能在其主线程上做了太多工作。 2-02 12:36:53.596:D/dalvikvm(1184):GC_并发释放180K,4%释放8234K/8519K,暂停96ms+114ms,总计356ms 我找不到原因java.lang.NullPointerException xml解析,java,android,xml,parsing,nullpointerexception,Java,Android,Xml,Parsing,Nullpointerexception,这段代码应该解析xml并显示它!但它有例外: 02-02 12:36:49.508:I/编舞(1184):跳过了32帧!应用程序可能在其主线程上做了太多工作。 02-02 12:36:50.926:W/System.err(1184):java.lang.NullPointerException 02-02 12:36:50.926:W/System.err(1184):位于com.example.sample.itcuties.android.reader.ITCutiesReaderAppA
package com.example.sample.itcuties.android.reader;
import java.net.URL;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import android.app.Activity;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
/**
* Main application activity.
*
* @author ITCuties
*
*/
public class ITCutiesReaderAppActivity extends Activity {
NodeList nodeList;
/**
* This method creates main application view
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set view
try{
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.HORIZONTAL);
/** Create a new textview array to display the results */
TextView name[];
TextView website[];
TextView category[];
LongOperation lOp = new LongOperation(this);
lOp.execute("");
if(nodeList.getLength() > 0)
{
name = new TextView[nodeList.getLength()];
website = new TextView[nodeList.getLength()];
category = new TextView[nodeList.getLength()];
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
name[i] = new TextView(this);
website[i] = new TextView(this);
category[i] = new TextView(this);
Element fstElmnt = (Element) node;
NodeList nameList = fstElmnt.getElementsByTagName("name");
Element nameElement = (Element) nameList.item(0);
nameList = nameElement.getChildNodes();
name[i].setText("Name = " + ((Node) nameList.item(0)).getNodeValue());
NodeList websiteList = fstElmnt.getElementsByTagName("website");
Element websiteElement = (Element) websiteList.item(0);
websiteList = websiteElement.getChildNodes();
website[i].setText("Website = " + ((Node) websiteList.item(0)).getNodeValue());
category[i].setText("Website Category = " + websiteElement.getAttribute("category"));
layout.addView(name[i]);
layout.addView(website[i]);
layout.addView(category[i]);
}
}
/** Set the layout view to display */
setContentView(layout);
} catch (Exception e) {
System.out.println("xml activity Excpetion = " + e);
}
}
private class LongOperation extends AsyncTask<String, Void, String> {
Context LongOperation;
public LongOperation(Context context){
this.LongOperation = context;
}
@Override
protected String doInBackground(String... params) {
try {
URL url = new URL("http://www.androidpeople.com/wp-content/uploads/2010/06/example.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
nodeList = doc.getElementsByTagName("item");
} catch (Exception e) {
System.out.println("XML Pasing Excpetion = " + e);
}
return null;
}
@Override
protected void onPostExecute(String result) {
}
@Override
protected void onPreExecute() {
}
@Override
protected void onProgressUpdate(Void... values) {
}
}
}
package com.example.sample.itcuties.android.reader;
导入java.net.URL;
导入javax.xml.parsers.DocumentBuilder;
导入javax.xml.parsers.DocumentBuilderFactory;
导入org.w3c.dom.Document;
导入org.w3c.dom.Element;
导入org.w3c.dom.Node;
导入org.w3c.dom.NodeList;
导入org.xml.sax.InputSource;
导入android.app.Activity;
导入android.content.Context;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.widget.LinearLayout;
导入android.widget.TextView;
/**
*主要应用程序活动。
*
*@author-ITCuties
*
*/
公共类ITCutiesReaderAppActivity扩展活动{
NodeList NodeList;
/**
*此方法创建主应用程序视图
*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//设置视图
试一试{
LinearLayout布局=新的LinearLayout(本);
布局。设置方向(线性布局。水平);
/**创建新的textview数组以显示结果*/
TextView名称[];
TextView网站[];
文本视图类别[];
LongOperation lOp=新的LongOperation(本);
lOp.执行(“”);
if(nodeList.getLength()>0)
{
name=newtextView[nodeList.getLength()];
website=newtextview[nodeList.getLength()];
category=newtextView[nodeList.getLength()];
for(int i=0;i nodeList=doc.getElementsByTagName(“项目”);
}捕获(例外e){
LongOperation lOp = new LongOperation(this); lOp.execute("");