2016-07-07 101 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個方法的庫。