2

我将 JSONLib 2.4 用于 JSONSerializer() 方法。每次我开始活动时,它都会强制关闭。我尝试抛出 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 拒绝操作码 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): 验证程序拒绝类 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):在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 的超类,因此您需要在项目中拥有 NestableRuntimeException 才能使 JSONException 工作。

与您将 JsonLib 添加到项目中的方式相同,您还应该添加 JsonLib 的依赖项。根据 mvnrepository,json-lib 2.4 依赖于相当多的视图库,commons-lang 2.5 就是其中之一。您可以在此处查看 mvnrepository 报告的它们。您还可以在此处的 json-lib 项目页面上看到它们。

对于看起来有大量依赖项并且会使您的 apk 更大的移动应用程序。我没有使用过 json-lib,但我可能会建议使用更独立的东西,比如gson下载)。

于 2013-01-14T23:10:12.453 回答