J'ai un petit problème avec une librairie native Android. J'appelle une méthode à partir du code natif comme ceci:Version d'Android NDK Méthode de construction non trouvée
clazz = env->FindClass("<package>/NativeInterface");;
midlog = env->GetStaticMethodID(clazz, "callStr", "(Ljava/lang/String;)V");
jstring jstr = env->NewStringUTF(s.c_str());
env->CallStaticVoidMethod(clazz, midlog, jstr);
Quand je bâtirai mon application en mode débogage, je n'ai aucun problème avec cela. Mais quand je construis en mode release, je reçois une erreur:
Throwing new exception 'no static method "L<package>/NativeInterface;.callStr(Ljava/lang/String;)V
pourrait-il que Android Studio est obforscating le code java et mon libary natif ne peut pas trouver Methode plus longtemps? Quel est mon problème ici?
callStr est une méthode privée qui n'est jamais appelée depuis Java? Il pourrait être retiré de la classe par un optimiseur Java –
Oui merci, ProGuard l'a rayé. J'ai ajouté un -keep au fichier de configuration pour garder les méthodes. – Ben