2012-01-31 73 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