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:
(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 had a similar issue. I could resolve it similar to what Hussam Otri mentions. For example:
I was getting the same error and the only thing that worked was going about it in a different way:
The name of image is underscore (underline) or "_" and I result okay because compiler rename name of photo as sample: source:"img0001" after compile "imag_0001".
I faced the same problem: "getIdentifier result 0" and i solved it by removing image extension (*.jpg, *.jpeg,... etc) to be match the name as it in R.java file