【问题标题】:Why we could not use the net.sf.json in android?为什么我们不能在 android 中使用 net.sf.json?
【发布时间】:2013-03-06 01:55:21
【问题描述】:

如果我们在android中使用net.sf.json.JSONObejct,类加载器找不到类。为什么我们不能在 android 中使用 net.sf.json?
并有一个可以在 android 中使用的 json jar 吗?因为 google 的 org.json 太简单了。 我想从一个对象解析一个 JSONObject。 非常感谢。

03-06 14:40:06.613:E/AndroidRuntime(660):致命异常:主要 03-06 14:40:06.613: E/AndroidRuntime(660): java.lang.NoClassDefFoundError: com.google.gson.Gson 03-06 14:40:06.613: E/AndroidRuntime(660): 在 de.bobs_world.mobile.LoginActivity.onCreate(LoginActivity.java:67) 03-06 14:40:06.613: E/AndroidRuntime(660): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 03-06 14:40:06.613: E/AndroidRuntime(660): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 03-06 14:40:06.613: E/AndroidRuntime(660): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 03-06 14:40:06.613: E/AndroidRuntime(660): 在 android.app.ActivityThread.access$1500(ActivityThread.java:117) 03-06 14:40:06.613: E/AndroidRuntime(660): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 03-06 14:40:06.613: E/AndroidRuntime(660): 在 android.os.Handler.dispatchMessage(Handler.java:99) 03-06 14:40:06.613: E/AndroidRuntime(660): 在 android.os.Looper.loop(Looper.java:123) 03-06 14:40:06.613: E/AndroidRuntime(660): 在 android.app.ActivityThread.main(ActivityThread.java:3683) 03-06 14:40:06.613: E/AndroidRuntime(660): 在 java.lang.reflect.Method.invokeNative(Native Method) 03-06 14:40:06.613: E/AndroidRuntime(660): 在 java.lang.reflect.Method.invoke(Method.java:507) 03-06 14:40:06.613: E/AndroidRuntime(660): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 03-06 14:40:06.613: E/AndroidRuntime(660): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 03-06 14:40:06.613: E/AndroidRuntime(660): at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

    标签: android json


    【解决方案1】:

    您可以使用它,只需将库导入您的项目即可。

    【讨论】:

    • java.lang.NoClassDefFoundError: 如果我使用其他 json jar,而不是 org.json,则会出现此错误。
    • 发布整个异常堆栈。
    • 在此处检查 net.sf.json 依赖项 - json-lib.sourceforge.net/dependencies.html - 并将缺少的 jars 添加到您的构建路径中。
    • 好的,我已经解决了这个错误。这是因为新的 adt 不需要从 Properties > Java Build Path > tab Libraries 导入 jar。我们只是新建一个名为 libs 的文件夹,并将 jar 放入此文件夹,它会自动识别 jar。谢谢,你们两个。凯瑟琳,德米特里。
    【解决方案2】:

    我也遇到过这样的问题,最后的解决办法是这样的:net.sf.json需要一些其他的jars,还有instructions on the official website

    如果你想使用json-lib-2.4-jdk15.jar,你必须添加这些:

    • commons-beanutils-1.8.0.jar
    • commons-collections-3.2.1.jar
    • commons-lang-2.5.jar
    • commons-logging-1.1.1.jar
    • ezmorph-1.0.6.jar

    但是我编译的时候会报异常:

    多个dex文件定义Lorg/apache/commons/collections/Buffer

    暴力解决办法:删除commons-beanutils-1.8.0.jar中的collections目录。

    那么你就可以在Android中使用net.sf.json了。

    【讨论】:

      猜你喜欢
      • 2023-01-10
      • 2018-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多