Android程序 依赖库引用Gson 报java.lang.NoClassDefFoundError:
Android 程序所依赖一个Library程序B , B 程序中用到格式化json串,转换成标准json串的要求
public static String jsonFormatter(String uglyJSONString) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(uglyJSONString);
String prettyJsonString = gson.toJson(je);
return prettyJsonString;
}
但在Android程序中却报
java.lang.NoClassDefFoundError: com/google/gson/Gson
实际上不知道为什么 new GsonBuilder()时就是找不到该类了。。。。
后来比较别人的程序发现 只有android-support-v4.jar 这个jar包是不同的。
将library程序的android-support-v4.jar和Android程序的android-support-v4.jar保持一致且
Android程序的java build path library 的 private library体现出依赖程序的 jar包才有效,也可能是 其中一套android-support-v4的版本太低了。。。
好用的android-support-v4.jar 连接址:
具体下载目录在 /2014年资料/8月/2/Android程序 依赖库引用Gson 报java.lang.NoClassDefFoundError
------------------------------------------另一篇------------------------------------------
解决Android使用GSON时报错 java.lang.NoClassDefFoundError: com.google.gson.Gson
在工程中导入了Gson的jar包,能正常通过编译,但执行时报错java.lang.NoClassDefFoundError: com.google.gson.Gson,查找了半天,原来是自己以导入external jar的形式引入gson的,所以编译导出的时候没有一起导出到项目中,所以执行会报找不到类定义的错误。
解决方法很简单:
1、右键项目 ---> properties ----> java buildpath ---> order and export
2、 勾选 gson-x.x.x.jar
3、保存设置,clean 项目并重新编译执行即可。