Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
I have Android project (com.appocaliptic.quizknife.app) which uses Android library (com.appocaliptic.quizknife.core).
What I am trying to do, is to get resource id of the picture which is the library. Path to the image is:
res/drawable-xhdpi/fr_200_133.png
However, all tries with getIdentifier result 0. Where is the problem?
resId = getResources().getIdentifier("fr_200_133", "drawable", "com.appocaliptic.quizknife.core");
resId = getResources().getIdentifier("com.appocaliptic.quizknife.core:drawable/"+"fr_200_133", null, null);
resId = getResources().getIdentifier("drawable/fr_200_133", null, "com.appocaliptic.quizknife.core");
Edited:
Ach, and in R.java there is drawable and corensponding attribute.
–
You should not be using the library package name. Try this instead:
resId = getResources().getIdentifier("fr_200_133", "drawable", getPackageName());
(or getContext().getPackageName()
if this is executing in a view).
The key is that you need to use the app's package name (as listed in the manifest) rather than the library's package name (which actually disappears when creating the app).
–
–
–
I was getting the same error and the only thing that worked was going about it in a different way:
resourceId = R.drawable.class.getField("fr_200_133").getInt(null);
I had a similar issue. I could resolve it similar to what Hussam Otri mentions. For example:
//This doesn't work
context.getResources().getIdentifier("audio_1.mp3", "raw", this.getPackageName());
//This works (strip off the file extension)
context.getResources().getIdentifier("audio_1", "raw", this.getPackageName());
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.