2011-11-08 3 views
1

Je me demande s'il existe un moyen d'accéder à l'attribut de classe R à partir du code natif, j'en ai besoin pour lire un ID généré qui peut changer chaque fois que je fais une construction propre de mon projet et je préférerais ne pas les passer manuellement à la partie indigène.Accès généré classe Android R du code natif

EDIT Comme suggéré de @trashkalmar est ici la solution:

static const char* const strClassName = "your/app/package/R$string"; 
clazz = env->FindClass(strClassName); 
if (clazz == NULL) { 
    LOGE("Can't find class %s\n", strClassName); 
    return result; 
} 
jfieldID field = env->GetStaticFieldID(clazz , "you_string_resource", "I"); 
jint value = env->GetStaticIntField(clazz, field); 
+0

S'il vous plaît fournir plus de détails, qu'est-ce que vous essayez de mettre en œuvre réellement? Il serait facile de comprendre exactement si vous partagez votre problème exactement. –

+0

C'est un problème commun: je voudrais accéder à tous les attributs R sans avoir à les passer manuellement à la partie native, quelque chose comme la façon dont vous pouvez accéder aux ressources des ressources. – dmarcato

Répondre

0

Accédez à votre classe R et lire ses champs comme d'autres classes.

+0

C'était vraiment si simple ... Merci pour l'indice! :) – dmarcato

Questions connexes