If you tried to publish your app to the Android Market and received an error similar to the following one, you may be running up against a block put in place by Google:
The file is invalid: W/ResourceType(15353): No known package when getting value for resource number 0x01080049 ERROR getting ‘android:icon’ attribute: attribute is not a string value
I recently ran into this error trying to publish one of my apps because the icon I chose for my app’s Preferences screen activity was a built in android resource “@android:drawable/ic_menu_preferences”.
Open your AndroidManifest.xml file and view the raw XML. If you find any
in it, then you need to change it to use something in your app instead of using an android resource.
Normally, I wouldn’t think twice about using a built in resource. Why? The fewer resources our apps use, the smaller the footprint of the app. The more we use built in resources, the more standardized the “look and feel” the various apps are and the more user friendly the phone feels. This also lends one to need less help using various apps since we all share the same icon for preferences (for example). The problem I see using this approach with allowing any Activity to use an Android built in resource is that malicious apps might want to “hide” themselves by using something already familiar to the device operator.
I can understand Google not wanting to allow apps that use Android built in icons for their activities. I just wish the Preferences activity was exempt from that rule. =/