2

JSONSerializer() メソッドに JSONLib 2.4 を使用しています。アクティビティを開始するたびに、強制終了します。JSONException をスローしようとしましたが、エラーが発生しました。どうしたの?これは呼び出しです:

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

これが私のLogCat出力です:

01-14 17:29: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;.toJSON (Ljava/lang/Object;Lnet/sf /json/JsonConfig;)Lnet/sf/json/JSON; 01-14 17:29:24.825: W/dalvikvm(13265): VFY: 0x002e 01-14 17:29:24.825 でオペコード 0x0d を拒否: W/dalvikvm(13265): VFY: 拒否された Lnet/sf/json/JSONSerializer; .toJSON (Ljava/言語/オブジェクト;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: W/dalvikvm(13265): threadid=11: キャッチされない例外で終了するスレッド (group=0x41b28930) 01-14 17:29:24.872: 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):

4

1 に答える 1

2

答えはlogcatの最初の行にあります。

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

JSONExceptionのjavadocを見ると、クラス階層が示されています。JSONExceptionのすぐ上に表示されますorg.apache.commons.lang.exception.NestableRuntimeException。これは、NestableRuntimeExceptionがJSONExceptionのスーパークラスであることを意味します。したがって、JSONExceptionを機能させるには、プロジェクトにNestableRuntimeExceptionが必要です。

プロジェクトにJsonLibを追加したのと同じ方法で、JsonLibの依存関係も追加する必要があります。mvnrepositoryによると、json-lib 2.4はかなりのビューライブラリに依存しており、commons-lang2.5もその1つです。ここでmvnrepositoryによって報告されたようにそれらを見ることができます。こちらのjson-libプロジェクトページにもリストされています

多数の依存関係のように見え、apkを大きくするモバイルアプリケーションの場合。私はjson-libを使用していませんが、gsonダウンロード)のようなより自己完結型のものを使用することをお勧めします。

于 2013-01-14T23:10:12.453 に答える