Comment importer correctement une bibliothèque Android avec du code JNI?

Contexte

J’ai créé un minuscule SDK pour la gestion de bitmap à l’aide de JNI (lien ici ).

Il ne comporte que 2 projets: un exemple de projet (illustre l’utilisation du SDK) et le SDK lui-même.

Le projet de SDK est un projet Android, qui inclut du code C / C ++.

Le problème

Pour une raison quelconque, même si, lorsque j’ai créé le projet, tout s’est bien passé, maintenant que j’essaie d’obtenir le projet de bibliothèque et de l’importer dans Eclipse, puis que j’ouvre le fichier CPP que j’ai créé, je constate de nombreuses erreurs. dessus, comme tel:

entrez la description de l'image ici

La question

Pourquoi cela se produit-il? Comment importer le projet correctement? Puis-je aider quiconque l’utilise pour pouvoir l’importer correctement?

J’ai essayé de créer un tout nouveau projet avec JNI et j’ai juste copié (soigneusement) les fichiers de ma bibliothèque, et tout a bien été compilé, mais ce n’est pas un bon moyen d’importer un projet …

Cette erreur d’éclipse se produit souvent et votre solution (commencer un projet vide puis append des fichiers) est la solution la plus rapide, et nous l’utilisons tous à cet égard. Une autre solution consisterait à supprimer la nature c et la nature Android et à append ces natures au projet (souvent, cela fonctionne aussi).

Lorsqu’un nouveau projet est créé, Eclipse ajoute ses natures et ses chaînes d’outils. Si vous importez un ancien projet, ces chaînes d’outils / natures risquent d’être mal imscopes.

Pour un projet contenant c et c ++, cnature et ccnature doivent être définis dans votre fichier “.project”. Pour Android, vous avez besoin d’Android Nature. Pour comstackr Android, vous devez avoir com.android.gcc comme chaîne d’outils définie dans votre fichier .cproject.

En fonction de la version de ADT / CDT / Eclipse, la valeur des chaînes d’outils dans .cproject diffère et elles ne sont donc pas faciles à importer d’une machine à l’autre.

Mon hypothèse est que vous avez votre tempête d’erreurs parce que le fichier .cproject a été généré de manière erronée.

MODIFIER

Après les recherches ultérieures d’Android Developer, un moyen plus rapide de contourner la limitation d’Eclipse causée par l’ajout de la nature native à un projet peut être effectué dans les étapes suivantes:

  1. supprimer du fichier “.project” les “cnature” et “ccnature”

     org.eclipse.cdt.core.cnature org.eclipse.cdt.core.ccnature 
  2. supprimer le fichier “.cproject” de l’espace de travail eclipse

  3. supprime tous les fichiers et dossiers générés: libs, obj, gen et bin

  4. Ajoutez à nouveau le support natif pour Android via le menu contextuel “Outils Android”.

Merci développeur Android.