2016-07-07 73 views
0

我有一个joda-time问题,它与我的Android应用程序集成。Android中的joda时间java.lang.NoClassDefFoundError

我想反序列化JSON其中包含与字符串的DateTime对象:

{ 
    "userId": 333, 
    "username": "myuserid", 
    "timestamp": "2014-11-19T17:02:11.454Z" 
} 

但可惜的是我收到NoClassDefFoundError

java.lang.NoClassDefFoundError: org/joda/convert/ToString...  
Caused by: java.lang.ClassNotFoundException: org.joda.convert.ToSt 

我尝试添加joda-converter并添加使用相同版本的joda-time依赖的服务器。但是,尽管如此,我却不断得到例外。我现在joda-time依赖条件是:

compile 'org.joda:joda-convert:1.8.1' 
compile 'joda-time:joda-time:2.1' 

我也试着用户joda-time-android但也没有成功。

+0

清理你的项目,请重新运行。 –

回答

0

纵观org.joda.convert我发现,org.joda.convert.ToString是一个接口。你不能用它来转换。
假设你成功地解析JSON String和你的对象的定义是:

public class json { 
    private Long userId; 
    private String username; 
    private String timestamp; 
} 

这里是你想要做什么的问题,因为你还没有确切一种高精度。
如果您想将Stringtimespamp转换为DateTime对象来自joda-time库,请按照this link。它提供了解析它的解决方案,因为您提供的日期是标准的ISO-8601描述日期格式。

但是,导入整个库仅仅是为了解析StringDate是一个效率低下的解决方案。 joda-time在Android上遇到初始化缓慢和性能问题。按照this link将字符串转换为JavaDate对象,而不导入具有4755个方法的库。