I recently ported an iOS app to Android that contained over 1,000 resources which are referenced from static XML files (pLists actually). Editing the plists was not an option.
Take a look at the answer from Alex2k8 here
Additionally, ADT does not allow resource file names that contain spaces, uppercase characters or that start with a number (this list may not be exhaustive, they are just the ones that I found amongst these 1000 odd resources.
To deal with this, I wrote a utility which renamed all of the files on disk. It converted the filename to lowercase, substituted illegal characters and spaces with underscores and prefixed "num" on filenames that began with a digit. These files were the ones I placed into my resource folders.
In my app, I wrote a helper function that did the same thing so when I needed to load a resource. I called the helper function to turn the filename from the plist into the legal Android version using the same algorithm then passed that to the framework loaders.
E.g. the iOS file name might be "9. Enlarge view 100m.png". The utility renamed this to num9_enlarge_view_100m.png". The helper function simply uses a string builder with .replace() methods on the iOS filename passed to it as a string argument.