Debugging using Firebase in Android

225 views
Skip to first unread message

Evans Attafuah

unread,
Aug 11, 2015, 10:39:58 AM8/11/15
to fireba...@googlegroups.com
Hello,

I use firebase for faster debugging in my Android App. Can anyone assist me on how to convert POJOS to firebase readable format. 

I get serialisation errors when I try to do this. Either the object is too big or unreadable.

Any help will deeply be appreciated. 

Frank van Puffelen

unread,
Aug 11, 2015, 4:40:40 PM8/11/15
to Firebase Google Group
Hi Evans,

We recently expanded the sections on reading and writing docs to cover the POJO serialization better. I usually find it pretty easy to write up a POJO for a simple JSON structure, but of course there are lots of situations that are more difficult than the ones I typically encounter.

If you have a specific sample of a problem, it will be easier to say something concrete if you share the JSON and your attempted Java class.

      Frank

Evans Attafuah

unread,
Aug 11, 2015, 5:52:13 PM8/11/15
to Firebase Google Group
Hello Frank,

TL;DR 
as already stated what I do is use firebase for testing specific functionality or expected return types. Am using Android Studio with multiple emulators and devices attached so sometimes I don't get my logs until I disconnect some of my devices. Am also very new to android dev. 

Anyway I ended up using firebase for debugging my app. this is how my tests looks like. I have also attached the class to this email

List<String> contacts = new ArrayList<>();
contacts.add("james");
contacts.add("evans");
contacts.add("frank");
contacts.add("firebase");
new Testable.Spec("load contacts")
        .describe(“does contact object have any value?")
        .expect(contacts)
        .run();


Testable.java

Evans Attafuah

unread,
Aug 11, 2015, 6:00:12 PM8/11/15
to Firebase Google Group
I want to be able to pass POJOS directly to firebase set value for debugging purposes. 

Currently when I do this the app crashes. 

set value only works with hash maps

My output to firebase has also been attached here. 


Screen Shot 2015-08-11 at 9.57.31 PM.png

Frank van Puffelen

unread,
Aug 11, 2015, 7:52:28 PM8/11/15
to Firebase Google Group
Hey Evans,

I'm not sure I understand your problem. When I put your class into a Java project, it executes fine. You can find the output here: https://testable.firebaseio-demo.com/, but I'm quite sure that matches with what you're seeing.

If you have problems serializing a specific Java class, can you share that Java class? It would also be helpful if you can share the error message you get (including a stack trace). Without those, it will be difficult to provide assistance.

     Frank

GmailMe

unread,
Aug 12, 2015, 12:13:18 AM8/12/15
to fireba...@googlegroups.com
Hello Frank,

The example I gave works fine. I was assuming you will try it with some complex Java object?

Let me try to recreate the issue, I will pull crash reporting and send it back to this thread when I get near my Mac.  

Sent from my iPhone 6
--
You received this message because you are subscribed to a topic in the Google Groups "Firebase Google Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/firebase-talk/E_tmUkBWHtE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to firebase-tal...@googlegroups.com.
To post to this group, send email to fireba...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/firebase-talk/9983ccdb-1c03-4112-88a4-7ee5114adf6d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Evans Attafuah

unread,
Aug 12, 2015, 6:00:50 AM8/12/15
to fireba...@googlegroups.com
Hello Frank,

I have attached a screen shot of the crash and also the code that caused it. I have used the LayoutInflater params from the onCreateView in android fragments. 

new Testable.Spec("views")
        .describe("the layout inflater view object")
        .expect(inflater)
        .run();

Screen Shot 2015-08-12 at 9.55.39 AM.png

Evans Attafuah

unread,
Aug 12, 2015, 6:10:02 AM8/12/15
to fireba...@googlegroups.com
Also this from Crashlytics 
Clipboard.png

Frank van Puffelen

unread,
Aug 12, 2015, 1:59:23 PM8/12/15
to Firebase Google Group
Can you dig up the entire stacktrace for that error?

Evans Attafuah

unread,
Aug 12, 2015, 3:16:11 PM8/12/15
to Firebase Google Group
com.firebase.client.FirebaseException: Failed to parse to snapshot
       at com.firebase.client.Firebase.setValueInternal(Firebase.java:357)
       at com.firebase.client.Firebase.setValue(Firebase.java:248)
       at com.psyphertxt.android.cyfa.util.Testable$Spec.run(Testable.java:169)
       at com.psyphertxt.android.cyfa.ui.fragment.ContextUserFragment.onCreateView(ContextUserFragment.java:51)
       at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138)
       at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740)
       at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501)
       at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:490)
       at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
       at android.support.v4.view.ViewPager.populate(ViewPager.java:1105)
       at android.support.v4.view.ViewPager.populate(ViewPager.java:951)
       at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1473)
       at android.view.View.measure(View.java:17478)
       at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
       at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:124)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
       at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
       at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
       at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
       at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2548)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2266)
       at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1395)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1594)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1253)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6596)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803)
       at android.view.Choreographer.doCallbacks(Choreographer.java:603)
       at android.view.Choreographer.doFrame(Choreographer.java:573)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789)
       at android.os.Handler.handleCallback(Handler.java:733)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5476)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
       at dalvik.system.NativeStart.main(NativeStart.java)
Caused by: java.lang.IllegalArgumentException: Conflicting getter definitions for property "changingConfigurations": android.app.Activity#isChangingConfigurations(0 params) vs android.app.Activity#getChangingConfigurations(0 params) (through reference chain: java.util.HashMap["expect"]->com.android.internal.policy.impl.PhoneLayoutInflater["context"])
       at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:2615)
       at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:2542)
       at com.firebase.client.Firebase.setValueInternal(Firebase.java:346)
       at com.firebase.client.Firebase.setValue(Firebase.java:248)
       at com.psyphertxt.android.cyfa.util.Testable$Spec.run(Testable.java:169)
       at com.psyphertxt.android.cyfa.ui.fragment.ContextUserFragment.onCreateView(ContextUserFragment.java:51)
       at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138)
       at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740)
       at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501)
       at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:490)
       at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
       at android.support.v4.view.ViewPager.populate(ViewPager.java:1105)
       at android.support.v4.view.ViewPager.populate(ViewPager.java:951)
       at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1473)
       at android.view.View.measure(View.java:17478)
       at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
       at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:124)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
       at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
       at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
       at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
       at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2548)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2266)
       at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1395)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1594)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1253)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6596)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803)
       at android.view.Choreographer.doCallbacks(Choreographer.java:603)
       at android.view.Choreographer.doFrame(Choreographer.java:573)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789)
       at android.os.Handler.handleCallback(Handler.java:733)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5476)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
       at dalvik.system.NativeStart.main(NativeStart.java)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Conflicting getter definitions for property "changingConfigurations": android.app.Activity#isChangingConfigurations(0 params) vs android.app.Activity#getChangingConfigurations(0 params) (through reference chain: java.util.HashMap["expect"]->com.android.internal.policy.impl.PhoneLayoutInflater["context"])
       at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:838)
       at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:387)
       at com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.findAndAddSerializer(PropertySerializerMap.java:38)
       at com.fasterxml.jackson.databind.ser.BeanPropertyWriter._findAndAddDynamic(BeanPropertyWriter.java:659)
       at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:550)
       at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:597)
       at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:142)
       at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:394)
       at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:315)
       at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:27)
       at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:118)
       at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:2593)
       at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:2542)
       at com.firebase.client.Firebase.setValueInternal(Firebase.java:346)
       at com.firebase.client.Firebase.setValue(Firebase.java:248)
       at com.psyphertxt.android.cyfa.util.Testable$Spec.run(Testable.java:169)
       at com.psyphertxt.android.cyfa.ui.fragment.ContextUserFragment.onCreateView(ContextUserFragment.java:51)
       at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138)
       at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740)
       at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501)
       at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:490)
       at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
       at android.support.v4.view.ViewPager.populate(ViewPager.java:1105)
       at android.support.v4.view.ViewPager.populate(ViewPager.java:951)
       at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1473)
       at android.view.View.measure(View.java:17478)
       at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
       at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:124)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
       at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
       at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
       at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
       at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2548)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2266)
       at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1395)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1594)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1253)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6596)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803)
       at android.view.Choreographer.doCallbacks(Choreographer.java:603)
       at android.view.Choreographer.doFrame(Choreographer.java:573)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789)
       at android.os.Handler.handleCallback(Handler.java:733)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5476)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
       at dalvik.system.NativeStart.main(NativeStart.java)
Caused by: java.lang.IllegalArgumentException: Conflicting getter definitions for property "changingConfigurations": android.app.Activity#isChangingConfigurations(0 params) vs android.app.Activity#getChangingConfigurations(0 params)
       at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.getGetter(POJOPropertyBuilder.java:190)
       at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.getAccessor(POJOPropertyBuilder.java:283)
       at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.removeIgnorableTypes(BeanSerializerFactory.java:678)
       at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanProperties(BeanSerializerFactory.java:557)
       at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:373)
       at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:268)
       at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:213)
       at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:152)
       at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:873)
       at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:833)
       at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:387)
       at com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.findAndAddSerializer(PropertySerializerMap.java:38)
       at com.fasterxml.jackson.databind.ser.BeanPropertyWriter._findAndAddDynamic(BeanPropertyWriter.java:659)
       at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:550)
       at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:597)
       at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:142)
       at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:394)
       at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:315)
       at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:27)
       at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:118)
       at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:2593)
       at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:2542)
       at com.firebase.client.Firebase.setValueInternal(Firebase.java:346)
       at com.firebase.client.Firebase.setValue(Firebase.java:248)
       at com.psyphertxt.android.cyfa.util.Testable$Spec.run(Testable.java:169)
       at com.psyphertxt.android.cyfa.ui.fragment.ContextUserFragment.onCreateView(ContextUserFragment.java:51)
       at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138)
       at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740)
       at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501)
       at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:490)
       at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
       at android.support.v4.view.ViewPager.populate(ViewPager.java:1105)
       at android.support.v4.view.ViewPager.populate(ViewPager.java:951)
       at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1473)
       at android.view.View.measure(View.java:17478)
       at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
       at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:124)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
       at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
       at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
       at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
       at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2548)
       at android.view.View.measure(View.java:17478)
       at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2266)
       at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1395)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1594)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1253)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6596)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803)
       at android.view.Choreographer.doCallbacks(Choreographer.java:603)
       at android.view.Choreographer.doFrame(Choreographer.java:573)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789)
       at android.os.Handler.handleCallback(Handler.java:733)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5476)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
       at dalvik.system.NativeStart.main(NativeStart.java)

Frank van Puffelen

unread,
Aug 12, 2015, 10:37:32 PM8/12/15
to Firebase Google Group
It looks like you're trying to serialize an Android Activity class, which contains some methods that don't adhere to the JavaBean patterns:

Caused by: com.fasterxml.jackson.databind.JsonMappingException: Conflicting getter definitions for property "changingConfigurations": android.app.Activity#isChangingConfigurations(0 params) vs android.app.Activity#getChangingConfigurations(0 params) (through reference chain: java.util.HashMap["expect"]->com.android.internal.policy.impl.PhoneLayoutInflater["context"])

If you must serialize such built-in classes (instead of writing dedicated JavaBean classes for the cause), you'll probably need to write custom serializers/deserializers for them. I've never done this myself, but this page seems like a good place to start: http://wiki.fasterxml.com/JacksonHowToCustomSerializers

       Frank

GmailMe

unread,
Aug 13, 2015, 2:53:43 AM8/13/15
to fireba...@googlegroups.com
Thanks frank, I will look into it. 

Sent from my iPhone 6
Reply all
Reply to author
Forward
0 new messages