ContexteDrawable pas affiché lorsque id est chargé dynamiquement et l'application signée
Chaque élément dans une listview charge une image. Compte tenu des données de l'élément, l'identifiant de la ressource (drawable) est renvoyé. Cet identifiant est utilisé dans setResourceId de l'imageview.
Problème
Lorsque l'apk est signé, rien ne s'affiche (mais pas d'erreur).
Test
Assurer l'identification correcte de la ressource est chargée. Un élément a été créé dont la ressource correspondante est R.drawable.banana, l'ID renvoyé par la fonction a été enregistré ainsi que la valeur R.drawable.banana (illustré ci-dessous). Les valeurs consignées étaient les mêmes, d'où l'ID correct était renvoyé.
essais supplémentaires Révèle
Si vous utilisez la ressource directement, R.drawable.example l'image est affichée, même si la fonction retourne la même valeur.
id = R.drawable.banana;
...
iv.setImageResource(id);
tentatives précédentes ont échoué
- Putting ressources dans un des dossiers différents (pas ppp, etc.)
folder attempt reference. Cependant, puisque l'image montre si j'utilise le direct R référence c'était une tentative sans fondement.
- Utilisation de la ressource drawable
Utilisez le id atteint pour charger le drawable directement et mettez-le.
Drawable d = ContextCompat.getDrawable(myContext,id);
...
iv.setImageDrawable(d);
code réel Snippet
int id = CropDataHelper.getCropsDrawable(myContext, txt);
Log.i("image id:"+id,"found id Fragment View Cycles");
Log.i("raw draw:"+R.drawable.banana,"drawable Fragment View Cycles");
// id = R.drawable.banana; - testing use of direct resource
// Drawable d = ContextCompat.getDrawable(myContext,id); drawable attempt
ImageView iv = ((ImageView) row.findViewById(R.id.icon_purchaseType));
if (id != -1) {
iv.setImageResource(id);
// iv.setImageDrawable(d); - drawable attempt
}
Remarques finales
Le problème ne se produit pas pendant le débogage, uniquement sur un fichier APK, cela me conduit à croire qu'il ya une sous-jacente autorisations que R.drawable.example déverrouille sur un apk signé, mais lorsque vous essayez d'utiliser l'ID directement ces autorisations s ne sont pas déverrouillés. Toute aide est appréciée, merci.