I included a bit extra just so the GC logging could be noted. I have 3 of these devices being used for testing and they don't all crash reliably when I'm developing and testing. Here's the latest crash captured during a debug session. If anyone has a suggestion on how to interpret those SIGSEGV errors, it would be greatly appreciated! It's like all my SO questions are niche or obscure. I know this isn't a great or clear questions. You start the app, the Service collects data, the UI displays it, you go to Home, then back to the app, the Activity will need to pull and re-create the OverlayItem's from the latest Service node data. Plus when the Activity is created (onResume, etc.) the OverlayItem objects will need to be re-created from the Node data that the Service has been maintaining while the Activity was away. The headache isn't splitting out the Node and OverlayItem from NodeOverlayItem, it's that the Activity will need some data from the Node, that the Service holds. (a concurrency issue)Īs I write this I think that's really the problem. I think it might be the OSMDroid API's use of OverlayItem, and my Service updating node information at the same time. The Activity binds to the Service and there's a Service method to get the list of NodeOverlayItem's. I used Intents to broadcast to the Activity to refresh the UI map when something changed. This gave me a single point of Item information for the UI and Service. In an effort to simplify my design, I extended OverlayItem into my own NodeOverlayItem class, which includes some addition attributes I use in the UI Activity and in the Service. I have a Service that collects data via the network to populate the OverlayItem which are then displayed on the map. The OverlayItem class represents markers/nodes on the map. My app uses the OSMDroid API for offline mapping. I have a suspect, but I'm not keen on experimenting with it yet. The last one I got was a code=2: A/libc(4969): Fatal signal 11 (SIGSEGV) at 0x42a637d9 (code=2)Īny suggestions on how to track this down? If the memory address was 0x00000000, I'd have a clue it is a NullPointer. I plan to scour my app for possible NullPointers related to Canvas use, but my SIGSEGV barfs up a different memory address each time. I've been reading the other posts on tracking down the reasons for getting a SIGSEGV in an Android app.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |