2010-07-11 23 views
1

Je développe une bibliothèque en C++ en utilisant l'android NDK. En fait, j'ai créé mon projet sous Android avec des sources java et C++. Je peux compiler et exécuter mon projet et tout fonctionne bien.Android-ndk avec éclipse: Comment forcer la réinstallation de l'apk

Maintenant, je voudrais forcer eclipse à réinstaller l'apk sur le téléphone même si le code java est inchangé mais quelque chose a changé du côté C++. En fait, si je change juste mon code C++ et que je lance l'application, la nouvelle bibliothèque n'est pas téléchargée sur le téléphone. Savez-vous comment je pourrais atteindre le résultat?

Merci beaucoup!

Répondre

4

J'ai également rencontré ce problème. Pour résoudre ce problème, vous pouvez touch un fichier java aléatoire dans votre projet chaque fois que vous compilez le projet NDK (le plus simple est de l'ajouter au fichier makefile NDK).
De cette façon, Eclipse est "dupe" en recréant l'APK.

Ouvrez l'espace de travail Eclipse contenant votre projet, puis activez Fenêtre | Préférences | Général | Espace de travail | Actualiser automatiquement Sinon, vous devrez peut-être actualiser manuellement l'espace de travail (F5) avant qu'Eclipse ne détecte le (s) fichier (s) modifié (s) et reconstruise l'APK.

+0

Salut adamk, merci pour votre réponse! Je ne comprenais pas ce que vous entendez par "toucher" .. comment pourrais-je faire cela dans le makefile? – hara

+1

'touch' est un utilitaire Unix qui modifie l'horodatage d'un fichier à l'heure actuelle (il est également disponible sous Cygwin). Cela fait croire à Eclipse qu'un fichier a été récemment modifié, bien qu'il n'ait pas été modifié. – adamk

+0

J'ai essayé de toucher à la fois le fichier .java et .class dans mon projet mais eclipse ne rafraîchit toujours pas mon apk..it dit "Application déjà déployée, pas besoin de réinstaller" ... je poste mon générateur d'éclipse personnalisé sur question ... – hara

1

Plutôt que de toucher un fichier source, je préfère supprimer le fichier apk. Avec l'option "Actualiser Automatiquement" activée, j'ai trouvé qu'il reconstruit immédiatement l'apk.

J'ai donc ajouté cela à ma compilation. Voici mon alias de construction:

alias b = 'ndk-build; rm -v ./bin/*.apk '