안드로이드 개발 질문/답변
(글 수 45,052)
try {
parserCreator = XmlPullParserFactory.newInstance();
parser = parserCreator.newPullParser();
} catch (XmlPullParserException e) {
Log.d(LOG_TAG, e.getMessage());
}
try {
xmlUrl = new URL(url);
} catch (MalformedURLException e) {
Log.d(LOG_TAG, e.getMessage());
}
Log.d("log11 ====> ", "log11");
try {
is = xmlUrl.openStream();
} catch (IOException e) {
Log.d(LOG_TAG, e.getMessage());
}
Log.d("log22 ====> ", "log22");
try {
parser.setInput(is, "UTF-8");
parserEvent = parser.getEventType();
} catch (XmlPullParserException e) {
Log.d(LOG_TAG, e.getMessage());
}
xml 파일에서 데이터를 가져와서 파싱하는 부분에서 에러가 났습니다.
로그를 다 찍어본 결과 log11 과 log22 사이에서 에러가 났는데
이유를 알 수가 없습니다. 많은 답변 부탁드립니다..
로그캣에서의 메세지는 아래와 같습니다.
11-05 17:42:32.434: ERROR/AndroidRuntime(4661): Uncaught handler: thread main exiting due to uncaught exception
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): java.lang.RuntimeException: Unable to start activity ComponentInfo{kr.co.billion.oceaninfo.android.apis/kr.co.billion.oceaninfo.android.apis.view.TabAc}: java.lang.RuntimeException: Unable to start activity ComponentInfo{kr.co.billion.oceaninfo.android.apis/kr.co.billion.oceaninfo.android.apis.view.OceanInfoList}: java.lang.IllegalArgumentException
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.os.Handler.dispatchMessage(Handler.java:99)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.os.Looper.loop(Looper.java:123)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.main(ActivityThread.java:4364)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at java.lang.reflect.Method.invokeNative(Native Method)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at java.lang.reflect.Method.invoke(Method.java:521)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at dalvik.system.NativeStart.main(Native Method)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{kr.co.billion.oceaninfo.android.apis/kr.co.billion.oceaninfo.android.apis.view.OceanInfoList}: java.lang.IllegalArgumentException
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.startActivityNow(ActivityThread.java:2335)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:648)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.widget.TabHost.setCurrentTab(TabHost.java:320)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.widget.TabHost.addTab(TabHost.java:213)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at kr.co.billion.oceaninfo.android.apis.view.TabAc.onCreate(TabAc.java:15)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): ... 11 more
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): Caused by: java.lang.IllegalArgumentException
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at org.kxml2.io.KXmlParser.setInput(KXmlParser.java:985)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at kr.co.billion.oceaninfo.android.apis.util.XmlUtil.oceanDataParse(XmlUtil.java:55)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at kr.co.billion.oceaninfo.android.apis.view.OceanInfoList.onCreate(OceanInfoList.java:27)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): ... 20 more
parserCreator = XmlPullParserFactory.newInstance();
parser = parserCreator.newPullParser();
} catch (XmlPullParserException e) {
Log.d(LOG_TAG, e.getMessage());
}
try {
xmlUrl = new URL(url);
} catch (MalformedURLException e) {
Log.d(LOG_TAG, e.getMessage());
}
Log.d("log11 ====> ", "log11");
try {
is = xmlUrl.openStream();
} catch (IOException e) {
Log.d(LOG_TAG, e.getMessage());
}
Log.d("log22 ====> ", "log22");
try {
parser.setInput(is, "UTF-8");
parserEvent = parser.getEventType();
} catch (XmlPullParserException e) {
Log.d(LOG_TAG, e.getMessage());
}
xml 파일에서 데이터를 가져와서 파싱하는 부분에서 에러가 났습니다.
로그를 다 찍어본 결과 log11 과 log22 사이에서 에러가 났는데
이유를 알 수가 없습니다. 많은 답변 부탁드립니다..
로그캣에서의 메세지는 아래와 같습니다.
11-05 17:42:32.434: ERROR/AndroidRuntime(4661): Uncaught handler: thread main exiting due to uncaught exception
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): java.lang.RuntimeException: Unable to start activity ComponentInfo{kr.co.billion.oceaninfo.android.apis/kr.co.billion.oceaninfo.android.apis.view.TabAc}: java.lang.RuntimeException: Unable to start activity ComponentInfo{kr.co.billion.oceaninfo.android.apis/kr.co.billion.oceaninfo.android.apis.view.OceanInfoList}: java.lang.IllegalArgumentException
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.os.Handler.dispatchMessage(Handler.java:99)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.os.Looper.loop(Looper.java:123)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.main(ActivityThread.java:4364)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at java.lang.reflect.Method.invokeNative(Native Method)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at java.lang.reflect.Method.invoke(Method.java:521)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at dalvik.system.NativeStart.main(Native Method)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{kr.co.billion.oceaninfo.android.apis/kr.co.billion.oceaninfo.android.apis.view.OceanInfoList}: java.lang.IllegalArgumentException
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.startActivityNow(ActivityThread.java:2335)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:648)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.widget.TabHost.setCurrentTab(TabHost.java:320)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.widget.TabHost.addTab(TabHost.java:213)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at kr.co.billion.oceaninfo.android.apis.view.TabAc.onCreate(TabAc.java:15)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): ... 11 more
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): Caused by: java.lang.IllegalArgumentException
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at org.kxml2.io.KXmlParser.setInput(KXmlParser.java:985)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at kr.co.billion.oceaninfo.android.apis.util.XmlUtil.oceanDataParse(XmlUtil.java:55)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at kr.co.billion.oceaninfo.android.apis.view.OceanInfoList.onCreate(OceanInfoList.java:27)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
11-05 17:42:32.499: ERROR/AndroidRuntime(4661): ... 20 more
SMS 입니다.
2010.11.05 17:47:31
KXmlParser 를 안써봐서 무엇인지 잘 모르겠지만 파서 자체가 문제이거나 XML 포멧이 문제일 가능성이 많겠네요.
파서 문제라면 파서 자체에 버그가 있거나 아니면 뭔가 사용을 잘못 했거나 잘 못 만들어서 그런 것일테고..
XML 문제라면 XML 이 제대로 표준 으로 된 규칙을 지키지 않아 발생한 것일 것 같은데요.
다른 파서를 사용해 보시던가, XML 자체 구조가 제대로 되어 있는지 살펴보시면 좋지 않을까 싶네요.
저도 전에 XML 이 제대로 안되어 있는 것을 파싱하려고 해서 에러 나길래 파서를 그런것도 잘 되는 걸로 바꾸니 잘 되더라구요.
제 추측이고 다른 문제일 수도 있습니다.