android中自带的json使用起来不是很方便,想使用net.sf.json,结果运行的时候又发现有异常:java.lang.VerifyError: net/sf/json/JSONObject
经过各种搜索,发现原来是我们使用的json-lib-2.4-jdk15.jar包要引用其他的几个jar包,这就表示想使用net.sf.json还不能只是简单的加一个jar包
参考官网配置:http://json-lib.sourceforge.net/index.html
所有需要的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
json-lib-2.4-jdk15.jar
配好以上jar包后还不够,编译的时候会报冲突错误:multiple dex files define Lorg/apache/commons/collections/Buffer
发现commons-beanutils-1.8.0.jar包中有和commons-collections-3.2.1.jar冲突的类,但是本人又想使用commons-collections-3.2.1.jar包
方法一(简单粗暴):直接把commons-beanutils-1.8.0.jar中的org/apache/commons/collections目录和目录下的class直接删掉(用解压缩工具打开,直接删除操作),这样再编译就不会报错了
方法二:
首先修改Gradle配置文件,启用MultiDex并包含MultiDex支持:
defaultConfig { multiDexEnabled true } dependencies { compile 'com.android.support:multidex:1.0.1' }
(我到这一步就好用了,但是要是还不行就得继续)
然后让应用支持多DEX文件。在MultiDexApplication JavaDoc中描述了三种可选方法:
1、在AndroidManifest.xml的application中声明android.support.multidex.MultiDexApplication;
2、如果你已经有自己的Application类,让其继承MultiDexApplication;
3、如果你的Application类已经继承自其它类,你不想修改它,那么可以重写attachBaseContext()方法:
@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
最后运行就可以了,也可能打包了,这个问题貌似是工程中的方法数量超过安卓规定65536个方法数了
相关推荐
为了使用`net.sf.json.JSONObject`,你需要在项目中引入相应的jar包。根据标题和描述,这个压缩包文件可能包含了运行和使用`net.sf.json.JSONObject`所需的依赖。通常,这些jar包可能包括json-lib的主库和其他可能的...
在Java开发中,处理JSON数据时通常会用到一些库,如`com.alibaba.fastjson.JSON` 和 `net.sf.json.JSONObject`。这两个库分别是阿里巴巴的Fastjson和Eclipse的Json-lib。 首先,我们来详细了解一下`...
在Android开发中,JSON是处理网络请求和响应数据的重要工具,尤其是在即时聊天软件项目中,用户发送的消息、接收的消息以及用户状态等信息通常都会以JSON格式进行传输。 本压缩包“使用json所需全部JAR包.rar”提供...
bcprov-jdk15on-1.52.0.jar、sun.misc.BASE64Decoder.jar,local_policy.jar,US_export_policy.jar,包含net.sf.json jar6个jar一键可用commons-beanutils-1.9.4.jar最新版
例如,你可以使用`net.sf.json.JSONObject`类将一个HashMap转换为JSON格式: ```java import net.sf.json.JSONObject; import java.util.HashMap; HashMap, String> map = new HashMap(); map.put("name", "张三")...
在Android开发中,要使用`net.sf.json.JSONObject`,首先你需要将对应的jar包添加到项目的类路径中。压缩包中的"JsonObject的jar包"就是这个必要的依赖。以下是具体步骤: 1. **获取jar包**:你需要从可靠的源下载`...
这里以Java为例,使用开源库`net.sf.json.JSONArray`和`net.sf.json.JSONObject`来处理JSON数据: ```java JSONArray jsonAry = JSONArray.fromObject(newsList); for (Map, Object> m : newsList) { String news...
这里使用的是`net.sf.json.JSONArray`和`net.sf.json.JSONObject`库,首先将接收到的JSON字符串转换为`JSONArray`或`JSONObject`,然后通过`.get()`或`.put()`方法进行操作。 例如,服务器端处理查询新闻列表的示例...
1. **org.json**: 这是Android和Java中常用的一个JSON库,由Mozilla基金会提供。它包含JSON对象和数组的Java表示,以及将JSON与Java对象相互转换的API。主要类有JSONObject、JSONArray、JSONString、JSONTokener等。...
你可以使用`net.sf.json.JSONObject`和`net.sf.json.JSONArray`类来创建、读取和操作JSON对象和数组。例如,你可以使用`JSONObject.fromObject()`将Java对象转换为JSON,`JSONObject.merge()`来合并两个JSON对象。 ...
2. **JSON数据构建**:通过`JSONArray`和`JSONObject`类(这里是使用了Net.sf.json库),可以构建JSON数据结构。在示例中,创建了一个包含多个`User`对象的列表,并将其转换为JSON数组。 3. **HTTP响应设置**:通过...
当然,如果`JsonUtils.java`中使用了其他方法,可能涉及到反射、正则表达式或自定义注解来实现忽略大小写的功能。自定义注解可以用来标记那些大小写不敏感的属性,然后在反序列化过程中特别处理这些属性。 总结一下...
然后,你可以利用json-lib提供的API,如`net.sf.json.JSONObject`和`net.sf.json.JSONArray`来创建和操作JSON对象。例如,你可以使用`JSONObject.fromObject()`方法将Java对象转换为JSON对象,使用`JSONObject....
例如,你可以将一个Java对象通过`net.sf.json.JSONObject.fromObject()`方法转换成JSON对象。 2. **JSON到Java对象的反转换**:同样,它也支持将JSON字符串解析回Java对象。例如,`net.sf.json.JSONObject.toBean()...
java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap java.lang.NoClassDefFoundError: org/apache/commons/beanutils/...
2. **创建JSON对象**:通过`net.sf.json.JSONObject`和`net.sf.json.JSONArray`类创建JSON对象。 3. **序列化Java对象**:使用`JSONObject.fromObject()`或`JSONArray.fromObject()`方法将Java对象转换为JSON。 4....
可以使用`net.sf.json.JSONObject.fromXML(String xml)`方法完成这一操作。 5. **JSON反序列化**:将JSON字符串解析成Java对象的过程称为反序列化。JSON-lib提供了`JSONObject.toBean(JSONObject json)`和`...
1. **json-lib的基本用法**:它提供了`net.sf.json.JSONObject`和`net.sf.json.JSONArray`类,分别对应JSON对象和数组。你可以通过这些类的方法来创建、读取和修改JSON结构。 2. **转换功能**:json-lib可以将Java...
import net.sf.json.JSONSerializer; public class JsonUtil { public static <T> T jsonToObject(String jsonString, Class<T> clazz) { return JSONSerializer.toJava(jsonString, clazz); } } ``` 在这个...
2. 创建一个JSON处理器,如`net.sf.json.JSONSerializer`或`net.sf.json.JSONObject`。 3. 使用`toJSON()`方法将Java对象转换为JSON格式。 4. 使用`fromJSON()`方法将JSON字符串解析回Java对象。 5. 如需进行XML与...