2013-01-14 5 views
1

JSONSerializer() 메소드에 JSONLib 2.4를 사용하고 있습니다. 활동을 시작할 때마다 강제로 닫힙니다. JSONException을 던지려고했지만 오류가 발생했습니다. 뭐가 문제 야?JSON 시리얼 라이저 안드로이드

01-14 17 : 29 :

JSONObject json = (JSONObject) JSONSerializer.toJSON(jsonTxt); 

가 여기 내 로그 캣 출력입니다 : 24.825 : W/dalvikvm (13265) :이 호출입니다 LNET/SF/JSON/JSONException의 슈퍼 클래스를 확인할 수 없습니다; (1034) 01-14 17 : 29 : 24.825 : W/dalvikvm (13265) : 'Lnet/sf/json/JSONException; 클래스 링크 실패했습니다 01-14 17 : 29 : 24.825 : W/dalvikvm (13265) : VFY : 예외 클래스 813 (Lnet/sf/json/JSONException)을 해결할 수 없음 01-14 17 : 29 : 24.825 : W/dalvikvm 13265) : VFY : addr에서 예외 처리기를 찾을 수 없습니다. 0x2e 01-14 17 : 29 : 24.825 : W/dalvikvm (13265) : VFY : 거부 된 Lnet/sf/json/JSONSerializer; .JJSON (Ljava/lang/Object; Lnet/sf/json/JsonConfig;) Lnet/sf/json/JSON; 01-14 17 : 29 : 24.825 : W/dalvikvm (13265) : VFY : 0x002e에서 opcode 0x0d 거부 01-14 17 : 29 : 24.825 : W/dalvikvm (13265) : VFY : 거부 된 Lnet/sf/json/JSONSerializer; .toJSON (Ljava/lang/Object; Lnet/sf/json/JsonConfig;) Lnet/sf/json/JSON; 01-14 17 : 29 : 24.825 : W/dalvikvm (13265) : Verifier가 클래스 Lnet/sf/json/JSONSerializer를 거부했습니다. 01-14 17 : 29 : 24.856 : E/AndroidRuntime (13265) : 치명적인 예외 (그룹 = : AsyncTask # 1 01-14 17 : 29 : 24.872 : E/AndroidRuntime (13265) : java.lang.RuntimeException : doInBackground() 실행 중 오류가 발생했습니다. 01-14 17 : 29 : 24.872 : E/AndroidRuntime (13265)) : at android.os.AsyncTask $ 3.done (AsyncTask.java:299) 01-14 17 : 29 : 24.872 : E/AndroidRuntime (13265) : java.util.concurrent.FutureTask.finishCompletion (FutureTask.java : 352) 01-14 17 : 29 : 24.872 : E/AndroidRuntime (13265) : java.util.concurrent.FutureTask.setException (FutureTask.java:219) 01-14 17 : 29 : 24.872 : E/AndroidRuntime 13265) : java.util.concurrent.FutureTask.run (FutureTask.java:239) 01- 14 : 17 : 29 : 24.872 : E/AndroidRuntime (13265) : android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask.java:230) 01-14 17 : 29 : 24.872 : E/AndroidRuntime (13265) : at (ThreadPoolExecutor.java : 1080) 01-14 17 : 29 : 24.872 : E/AndroidRuntime (13265) : java.util.concurrent.ThreadPoolExecutor에서 $ Worker.run (ThreadPoolExecutor.java : 573) 01-14 17 : 29 : 24.872 : E/AndroidRuntime (13265) : java.lang.Thread.run (Thread.java:856) 01-14 17 : 29 : 24.872 : E/AndroidRuntime (13265) : 원인 : java.lang.VerifyError : net/sf/json/JSONSerializer 01-14 17 : 29 : 24.872 : E/AndroidRuntime (13265) : com.aer.illbehonest.VideoPlay $ ShowTitlesTask.doInBackground (VideoPlay.java : 63) 01-14 17 : 29 : 24.872 : E/AndroidRuntime (13265) : com.aer.illbehonest.VideoPlay $ ShowTitlesTask.doInBackground (VideoPlay.java:1) 01-14 17 : 29 : 24.872 : E/AndroidRuntime (13265) : android.os.AsyncTask $ 2.call (AsyncTask.java:287) 01-14 17 : 29 : 24.872 : E/AndroidRuntime (13265) : (FutureTask.java:234) 01-14 17 : 29 : 24.872 : E/AndroidRuntime (13265) : ... 4 더보기

+0

'jsonTxt'의 값은 무엇입니까? –

답변

2

답변은 첫 줄에 있습니다. logcat.

Unable to resolve superclass of Lnet/sf/json/JSONException 

javadoc for JSONException을 보면 클래스 계층 구조를 보여줍니다. 당신은 JSONException 바로 위의 org.apache.commons.lang.exception.NestableRuntimeException을 볼 수 있습니다. NestableRuntimeException은 JSONException의 수퍼 클래스이므로 JSONException이 작동하려면 프로젝트에 NestableRuntimeException이 있어야합니다.

프로젝트에 JsonLib을 추가 한 것과 같은 방법으로 JsonLib의 종속성도 추가해야합니다. mvnrepository에 따르면, json-lib 2.4는 꽤보기 라이브러리에 의존하며, commons-lang 2.5가 그 중 하나입니다. mvnrepository here에 의해보고 된 내용을 볼 수 있습니다. 또한 json-lib 프로젝트 페이지 here에 나열된 것을 볼 수 있습니다.

많은 수의 의존성이있는 것으로 보이는 모바일 애플리케이션의 경우 apk를 더 크게 만듭니다. 나는 json-lib를 사용하지 않았지만, gson (download)과 같은 자체 포함 된 것을 사용하도록 제안 할 수 있습니다.

+0

제발 바보가 될 것이라고 생각하지 마시고, 제가 무슨 뜻인지 예를 들려 주시겠습니까? 나는 아직도 Java로 초보자입니다. –

+0

누구나 어느 시점에서 초보자입니다. 나는 대답을 업데이트했다. 당신이 더 도움이 되었기를 바란다. – digitaljoel

+0

나는 그것을했고 나는 여전히 같은 문제를 겪고있다. –

관련 문제