2012-01-31 75 views
0

我有一個Android應用程序崩潰,並顯示以下錯誤。Android中的GSON NoSuchFieldError異常

Caused by: java.lang.NoSuchFieldError: com.google.gson.FieldNamingPolicy.IDENTITY 
at ir.<init>(App:72) 
ja.a(App:653) 
at ja.doInBackground(App:1) 
at android.os.AsyncTask$2.call(AsyncTask.java) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 
... 4 more 
App crashed! Process: com.company.app 

這並不在我的Nexus S的崩潰,運行Android 4.0 ICS,但它崩潰,我沒有進入到另一個beta測試設備上。我正在使用Google GSON 2.1庫。

我也使用ProGuard但是如果這是造成問題,我覺得這也將導致此問題上我的Nexus S.

任何想法,爲什麼這不會在我的測試設備上發生的,我怎麼能解決問題?

+0

http://developer.android.com/reference/java/lang/NoSuchFieldError.html - >「請注意,這隻能當發生不一致的類文件正在加載。「可能是一個Android版本的問題? – joni 2012-01-31 08:05:17

+0

類文件如何不一致?它所指的字段是我正在發佈的應用程序庫,com.google.gson v2.1 – Luke 2012-01-31 08:08:48

+0

我不知道,它只是在Android參考中編寫的內容... – joni 2012-01-31 08:12:14

回答

2

此問題是由定製的Android ROM導致的,我認爲ROM中的不一致的類文件導致了問題評論中建議的問題。

2

我通過從混淆中跳過GSON來修復它。

-keep類com.google.gson.Gson {*;}

+0

歡迎來到SO。也許你可以給這個解決方案增加更多的解釋。請看看常見問題解答:http://stackoverflow.com/faq看看如何做出好的帖子:)問候 – ForceMagic 2012-12-20 03:05:15