
json파싱 아무리 찾아봐도 안되는 이유를 못찾아서
결국 xml파싱으로 넘어왔습니다 ㅜㅜ
파싱된 xml을 읽은 후 리스트뷰로 화면에 뿌리는 것을 구현하려고 합니다.
근데 이번에는 실행하면 창이 뜨면서 꺼지는 에러현상이 발생하네요..
하나하나 logcat 찍어봤는데, 원인을 모르겠습니다.
logcat을보면 프로그램의 마지막부분의 logcat까지 확실히 찍히는데 갑자기 에러가 나네요.
logcat과 소스 첨부할게요
오류가 나는 이유 알고 계신분 조언부탁드려요~!
public class Tab2Act extends Activity {
ListView listView;
ArrayList<String> items = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_tab2); readXml();
listView = (ListView) findViewById(R.id.listView1);
listView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, items));
Log.d("setadapter","setadapter");
}
private void readXml() {
try {
URL url = new URL("http://10.0.2.2:8080/servlet/smart.xml");
Log.d("URL","URL");
XmlPullParserFactory parserFactory = XmlPullParserFactory.newInstance();
Log.d("parserFactory","parserFactory");
XmlPullParser parser = parserFactory.newPullParser();
Log.d("parserFactory-2","parserFactory-2");
parser.setInput(url.openStream(), "utf-8");
Log.d("setInput","setInput");
int eventType = parser.getEventType();
Log.d("eventType","eventType");
boolean initem = false;
//////////////준비완료/////////////////
while(eventType != XmlPullParser.END_DOCUMENT) {
switch(eventType) {
case XmlPullParser.START_DOCUMENT:
Log.d("parserStart","Start......");
break;
case XmlPullParser.END_DOCUMENT:
Log.d("end_document","end_document");
break;
case XmlPullParser.START_TAG:
Log.d("start_tag","start_tag");
if(parser.getName().equalsIgnoreCase("mem")) {
initem=true;
items = new ArrayList<String>();
Log.d("start_tag-2","start_tag-2");
}
break;
case XmlPullParser.END_TAG:
Log.d("end_tag","end_tag");
if(parser.getName().equalsIgnoreCase("mem")){
initem=false;
Log.d("end_tag-2","end_tag-2");
}
break;
case XmlPullParser.TEXT:
Log.d("text","text");
if(initem==true) {
items.add(parser.getAttributeValue(null, "id"));
Log.d("text-2","text-2");
}
}
eventType=parser.next();
Log.d("next","next");
}
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d("parserTest","error");
}
}
}
logcat입니다.
(보기시 편하라고 글자색 바꾸려고 하는데 왜 잘 안될까요;;;; 잘 안바뀌네요 글자색이 ㅠ)
12-03 14:23:18.957: DEBUG/end_tag(690): end_tag
12-03 14:23:18.992: DEBUG/next(690): next
12-03 14:23:19.007: DEBUG/setadapter(690): setadapter
12-03 14:23:19.087: DEBUG/AndroidRuntime(690): Shutting down VM
12-03 14:23:19.087: WARN/dalvikvm(690): threadid=1: thread exiting with uncaught exception (group=0x40015560)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): FATAL EXCEPTION: main
12-03 14:23:19.231: ERROR/AndroidRuntime(690): java.lang.NullPointerException
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.AbsListView.obtainView(AbsListView.java:1418)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.ListView.makeAndAddView(ListView.java:1745)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.ListView.fillDown(ListView.java:670)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.ListView.fillFromTop(ListView.java:727)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.ListView.layoutChildren(ListView.java:1598)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.AbsListView.onLayout(AbsListView.java:1248)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.view.View.layout(View.java:7175)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.view.View.layout(View.java:7175)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.view.View.layout(View.java:7175)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.view.View.layout(View.java:7175)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.view.View.layout(View.java:7175)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.view.View.layout(View.java:7175)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.view.View.layout(View.java:7175)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.view.View.layout(View.java:7175)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.view.View.layout(View.java:7175)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.view.View.layout(View.java:7175)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.view.ViewRoot.performTraversals(ViewRoot.java:1140)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.os.Handler.dispatchMessage(Handler.java:99)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.os.Looper.loop(Looper.java:123)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at android.app.ActivityThread.main(ActivityThread.java:3647)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at java.lang.reflect.Method.invokeNative(Native Method)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at java.lang.reflect.Method.invoke(Method.java:507)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
12-03 14:23:19.231: ERROR/AndroidRuntime(690): at dalvik.system.NativeStart.main(Native Method)
12-03 14:23:19.337: WARN/ActivityManager(68): Force finishing activity and.comnet.smartproject/.SmartProject
12-03 14:23:19.898: WARN/ActivityManager(68): Activity pause timeout for HistoryRecord{405a3d88 and.comnet.smartproject/.SmartProject}





널 포인트...뷰가 없다는거 같은데..
xml 파싱하기전에 먼저 뷰를 만들어야하지 않을까요.
readxml(); 을...