android-unused-resources is a Java tool that will detect unused resources, and tell you where they are located. It processes Java and XML files, so it avoids the problem in the accepted answer.
It's not perfect, but as long as you don't dynamically load resources (getIdentifier(java.lang.String, java.lang.String, java.lang.String
)), It shouldn't tell you to delete any that are actually being used (although you'll get a compiler error even if that happens).