2012-05-23 5 views
1

Je vois beaucoup de post concernant l'Android Jni mais je n'ai toujours pas une idée claire sur la façon de le modifier. J'ai une application Phonegap qui a des erreurs JNI lors du chargement d'une certaine page. D'après ce que j'ai lu pendant la recherche, j'ai besoin de libérer le stockage local. Comment je fais cela, je me demande.Comment libérer des chaînes dans Android jni?

Tout ce que je vois pour le faire, mais pas vraiment clair sur ce qu'il faut faire.

Si vous deviez soit libérer des chaînes localRef, soit créer une chaîne globalRef Que feriez-vous?

Merci d'avance.

+0

Erreur comme [phonegap.js bloque l'application android] (http://stackoverflow.com/questions/4459458/phonegap-js-crashes-android-app)? Avez-vous écrit un code Java <> JNI <> C? Quelle erreur JNI avez-vous? – zapl

+0

J'ai écrit Java. J'ai fait un certain nombre d'applications Phongap avec Eclipse. Ce que je ne sais pas, c'est où écrire le Java pour libérer le localRefs dans le projet android. – skwidgets

+0

J'ai lu ceci http://stackoverflow.com/questions/9376833/referencetable-overflow-max-1024 mais il me laisse toujours perdu pour éditer ou ajouter du code pour libérer les localRefs. – skwidgets

Répondre

0

Vous avez déjà créé 512 références locales et vous devez en créer d'autres. Vous devez soit libérer certains de ceux que vous avez déjà créés, via DeleteLocalRef(), si cela a du sens dans votre code, ou bien demander plus d'emplacements locaux, via EnsureLocalCapacity() ou PushLocalFrame(). Je préfère ce dernier en conjonction avec PopLocalFrame(): de nombreux modèles de codage s'y adaptent, peut-être le vôtre.