Android – getIdentifier restituisce sempre 0 (libreria + applicazione)

Ho un progetto Android (com.appocaliptic.quizknife.app) che utilizza la libreria Android (com.appocaliptic.quizknife.core).

Quello che sto cercando di fare è ottenere l’id risorsa dell’immagine che è la libreria. Il percorso dell’immagine è: res / drawable-xhdpi / fr_200_133.png

Tuttavia, tutti i tentativi con risultato getIdentifier 0. Dov’è il problema?

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"); 

Modificato:

Ach, e in R.java c’è l’attributo drawable e corensponding.

Solutions Collecting From Web of "Android – getIdentifier restituisce sempre 0 (libreria + applicazione)"

Non dovresti usare il nome del pacchetto della libreria. Prova questo invece:

 resId = getResources().getIdentifier("fr_200_133", "drawable", getPackageName()); 

(o getContext().getPackageName() se questo è in esecuzione in una vista).

Ho affrontato lo stesso problema: “getIdentifier risultato 0” e l’ho risolto rimuovendo l’estensione dell’immagine (* .jpg, * .jpeg, … ecc.) Per far corrispondere il nome come nel file R.java

Stavo ottenendo lo stesso errore e l’unica cosa che ha funzionato è stata affrontarla in un modo diverso:

 resourceId = R.drawable.class.getField("fr_200_133").getInt(null); 

Ho avuto un problema simile. Potrei risolverlo in modo simile a ciò che menziona Hussam Otri. Per esempio:

 //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());