我用Android Studio开发app,自己写接口,需要使用json,于是涉及到Json的使用,然而在使用过程中也踩到了不少坑。

1、JSONObject 包的引用。

一种是:

import org.json.JSONObject;

但是引用之后,发现网上有的代码为

JSONObject.fromObject(result);

而这个包里是没有fromObject以及一些其他方法的。

后来上网去查找,发现他们用的是另外一个包。下面讲的主要是这个包

我们使用的是

import net.sf.json.JSONObject;

这个需要依赖以下的几个包:

commons-beanutils-1.8.0.jar、commons-collections、commons-lang-2.4、commons-logging-1.1、ezmorph-1.0.4、json-lib-2.3-jdk15

都需要添加到Android Studio的 Lib中,一个都不能少。

接下来我去网上下载了几个版本的jar包,那些

2、问题一:一口气将这几个包同时复制到lib目录中,然后“add as library”,编译后发现某些包有问题,编译不同。(问题没有截图)

后来定位到项目中的目录,发现有个别jar包居然为0kb!坑爹,删除后重新复制一遍进去。解决问题。

3、我原本在网上下载的某个包为:commons-beanutils-1.8.0.jar

再添加进去的时候,编译报错。

Duplicate class org.apache.commons.collections.ArrayStack found in modules commons-beanutils-1.8.0.jar (commons-beanutils-1.8.0.jar) and commons-collections.jar (commons-collections.jar)

大意是org.apache.commons.collections.ArrayStack这个方法在 (commons-collections.jar)和(commons-beanutils-1.8.0.jar)中重复了。

于是试着把commons-beanutils-1.8.0.jar给删除了,程序就能运行不报错了。如执行以下代码都没有问题

JSONObject json = new JSONObject();json.put("userName", userName);json.put("password", password);

但是在执行到这个操作的时候,又报错了。

JSONObject jsonObject = JSONObject.fromObject(result);boolean isError = jsonObject.getBoolean("successs");

错误为:

java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/commons/beanutils/DynaBean;

到此,看到“beanutils”,我是明白了,因为我刚刚删除了commons-beanutils-1.8.0.jar的原因。

看来那几个依赖包,一个都不能少!

那之所以之前没删除之前,仍旧出现编译错误的原因,就只可能是依赖包的版本不一致了!

下载的时候说“(完整直接可用版)”和“所需全部JAR包”都是骗人的!!我那个伤心啊!折腾了那么久。

于是我意外发现了 commons-beanutils的官网,抱着试试的态度,下载了最新版的commons-beanutils-1.9.3.jar。引入项目后,完美解决!!!

我那个泪流满面啊!

 

以下为自己整理的JSONObject以及其依赖包的下载地址:

java json依赖包下载 

更多相关文章

  1. Android(安卓)mediaPlayer播放报PVMFErrNotSupported Prepare fa
  2. 【移动开发】Android无线调试 使用adbWireless软件
  3. [Android]Android中R文件的丢失问题
  4. 关于百度地图只显示中间部分,显示不全的原因
  5. Error:UNEXPECTED TOP-LEVEL ERROR:
  6. Eclipse使用
  7. Ubuntu 14.04 编译 Android(安卓)4.2.2 for Tiny4412
  8. Android(安卓)Studio (IntelliJ/IDEA)在AndroidSDK Leve22报except
  9. ubuntu下eclipse Android(安卓)ADT中SDK Manager中安装SDK失败的

随机推荐

  1. Android(安卓)studio gradle 无法获取 po
  2. BNR Android(安卓)Demo学习笔记(一)——Cri
  3. Android(安卓)的布局
  4. Android(安卓)动态添加View
  5. UICC
  6. android jni打印log
  7. Android(安卓)selector下的属性值
  8. Android(安卓)布局之GridLayout
  9. 2011.07.20——— android 获得当前view
  10. Android(安卓)Framework 基础