2016-02-03 3 views
2

Debug buildtype работает отлично, но производство (с ProGuard и Минимизация) сгенерирует исключениеджексон UnrecognizedPropertyException - ProGuard минификация misconfig

Caused by com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "timestamp" (class com.two_two.checkreaction.models.firebase.FireComplexResult), not marked as ignorable (0 known properties: ]) 
at [Source: [email protected]; line: 1, column: 27] (through reference chain: com.two_two.checkreaction.models.firebase.FireComplexResult["timestamp"]) 
     at com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:555) 
     at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:708) 
     at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1160) 
     at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:315) 
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:121) 
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2888) 
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2034) 
    at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:183) 
    at com.firebase.ui.FirebaseListAdapter.getView(FirebaseListAdapter.java:130) 
    at android.widget.AbsListView.obtainView(AbsListView.java:2338) 
    at android.widget.ListView.makeAndAddView(ListView.java:1812) 

Proguard секция для Firebase является следующая

# Basic ProGuard rules for Firebase Android SDK 2.0.0+ 
-keep class com.firebase.** { *; } 
-keep class org.apache.** { *; } 
-keep class com.two_two.checkreaction.models.firebase.FireComplexResult 
-keepnames class com.fasterxml.jackson.** { *; } 
-keepnames class javax.servlet.** { *; } 
-keepnames class org.ietf.jgss.** { *; } 
-dontwarn org.apache.** 
-dontwarn org.w3c.dom.** 

# Firebase-UI 
#-keepnames class com.firebase.ui.** { *; } 
#-keep class com.firebase.ui.** { *; } 
-dontwarn com.firebase.ui.** 

Обновление:

-keep class com.two_two.checkreaction.models.firebase.** { *; } 

решает проблему. Но я не хочу хранить пакет, я хочу сохранить только один класс.

ответ

0

У меня было аналогичное исключение, заброшенное в моем приложении, которое использует Firebase. Решила его, переместив мои POJO в пакет и исключив, что этот пакет не был запутан с помощью этого правила proguard.

-keepnames class com.my.package.beans.** { *; } 
Смежные вопросы