Issue
Last night my code was working fine, today when I load it up, the raw resource I access in my code is trying to read from an id pointing to a string rather than an xml file in my raw folder.
I have used http://www.statman.info/conversions/hexadecimal.html to track the resource id's and match them to their R hex id's and I can SEE that it should be accessing 0x7f040002 but is accessing 7f060000 for some reason...
I have already looked at : Accessing wrong raw resource in Android
I have done all of the following:
- Clean, Rebuild, Run.
- Delete R, Reboot Eclipse, Clean, Rebuild, Run
- Delete R, Clean and Rebuild Immediately, Reboot
- UmbySlipKnot's idea of deleting Gen Folder + all of the above.
- Making sure Android.R is not being used anywhere.
- Printed the actual resource id I am expecting to use by calling (returns expected id correctly!):
int resId=con.getResources().getIdentifier("raw_tsn_xml_amina_simple","raw",con.getPackageName());
Also rebuilt the project entirely from scratch. No matter what I do - it's always getting app name as the resource id it references for the Input Stream - source
None of these have worked for me... Does anyone have any ideas what else I can try?
I have also added images to show you what I noticed:
Debug Snippet:
Android R File Snippet:
Solution
Apparently the eclipse debugger is not as dependable as I expected.
While I was working with the debugger, I noticed that resource ID is correctly being found, but when I really nitpick into the debugger, the inputStream seemed to be getting built from another source.
I thought that was the reason my code was crashing, but it wasn't.
I use a SIMPLE xml android library - if the xml you pass it is in an unexpected/invalid format, it can't build the data models you create (My XML was invalid - therefore the crash).
I did a roll back to notice that new XML I had added, crashed the run.
The debugger just cranked out... giving me nulls when things weren't null, showing different values even when my logs were printing correct values!
Once I saw this hapenning, I didn't trust the debugger as much as I ususally do.
My advice : If the simpler solutions on this page have not worked for you - Take the following steps:
Suspect code additions first! If something you added suddenly breaks your working code, it's probably your own error.
If your debugger acts weird, print useful log information (It is much faster) to give you the right information in the right places.
These are the exact steps I took to find the root of the problem.
Answered By - shecodesthings
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.