2013-01-14 5 views
1

J'utilise JSONLib 2.4 pour la méthode JSONSerializer(). Chaque fois que je commence l'activité, la force se ferme. J'ai essayé de lancer une exception JSON, mais cela m'a donné une erreur. Qu'est-ce qui ne va pas? Ceci est l'appel:JSON Serializer Android

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

Voici mon sortie LogCat:

01-14 17: 29: 24,825: W/dalvikvm (13265): Impossible de résoudre superclasse de Lnet/sf/JSON/JSONException; (1034) 01-14 17: 29: 24.825: W/dalvikvm (13265): Lien de la classe 'Lnet/sf/json/JSONException;' Échec 01-14 17: 29: 24.825: W/dalvikvm (13265): VFY: impossible de résoudre la classe d'exception 813 (Lnet/sf/json/JSONException;) 01-14 17: 29: 24.825: W/dalvikvm (13265): VFY: impossible de trouver le gestionnaire d'exceptions à addr 0x2e 01-14 17: 29: 24.825: W/dalvikvm (13265): VFY: rejeté 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: rejet de l'opcode 0x0d à 0x002e 01-14 17: 29: 24.825: W/dalvikvm (13265): VFY: rejeté 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): Vérificateur rejeté classe Lnet/sf/json/JSONSerializer; 01-14 17: 29: 24.856: W/dalvikvm (13265): threadid = 11: thread sortant avec exception non interceptée (groupe = 0x41b28930) 01-14 17: 29: 24.872: E/AndroidRuntime (13265): FATAL EXCEPTION : AsyncTask # 1 01-14 17: 29: 24.872: E/AndroidRuntime (13265): java.lang.RuntimeException: une erreur s'est produite lors de l'exécution de 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): at 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): à java.util.concurrent.ThreadPoolExecutor.runWorker (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) : Causé par: 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): à l'adresse android.os.AsyncTask $ 2.call (AsyncTask.java:287) 01-14 17: 29: 24.872: E/AndroidRuntime (13265): à java.util.concurrent.FutureTask.run (FutureTask.java:234) 01-14 17: 29: 24.872: E/AndroidRuntime (13265): ... 4 plus

+0

Quelle est la valeur de 'jsonTxt'? –

Répondre

2

La réponse est dans la première ligne du logcat.

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

Si vous regardez le javadoc for JSONException il montre la hiérarchie des classes. Vous pouvez voir juste au-dessus de JSONException qu'il est org.apache.commons.lang.exception.NestableRuntimeException, ce qui signifie que NestableRuntimeException est la super-classe de JSONException. Par conséquent, vous devez avoir une exception NestableRuntimeException dans votre projet pour que JSONException fonctionne.

De la même manière que vous avez ajouté JsonLib à votre projet, vous devez également ajouter les dépendances de JsonLib. D'apr'es mvnrepository, json-lib 2.4 dépend d'une librairie assez large, avec commons-lang 2.5 en étant une. Vous pouvez les voir comme indiqué par mvnrepository here. Vous pouvez également les voir sur la page du projet json-lib here.

Pour une application mobile qui ressemble à un grand nombre de dépendances et qui agrandira votre apk. Je n'ai pas utilisé json-lib, mais je pourrais suggérer d'utiliser quelque chose de plus autonome comme gson (download).

+0

S'il vous plaît, ne pensez pas que je suis un idiot, mais pouvez-vous me donner un exemple de ce que vous voulez dire? Je suis toujours un débutant avec Java. –

+0

Tout le monde est un débutant à un moment donné. J'ai mis à jour la réponse, j'espère que vous la trouverez plus utile. – digitaljoel

+0

Je l'ai fait et j'ai toujours le même problème. –

Questions connexes