Android Ajouter un support natif - jni.h non résolu, android / log.h etc.
Avant aujourd'hui, j'utilise Eclipse 3.8 avec Sequoyah plugin pour Android NDK projet.
Mais aujourd'hui, je décide de me rafraîchir Eclipse Juno communiqué avec le SDK et NDK.
J'ai été très heureux, alors je vois Natif Android Outils de dans ADT de l'installation, qui va faire le même travail comme Sequoyah, mais avec des fonctionnalité de débogage.
J'ai créée un nouveau Projet Android pour le tester.
Ajout de la prise en charge Native Android créer jni dossier avec Android.mk, .fichier cpp, bien même que Sequayah faire.
Puis-je obtenir le premier non résolus à jni.h. J'ai même bug avec Sequoyah, j'ai donc recréer les index et redémarrer Eclipse. Après le redémarrage, il n'a pas complètement disparue.
Je vais à les Chemins Et les Symboles au C/C++ propriétés.
Mais il y a tout ce que devait intégré comprend.
(NDK CHEMIN de)/plates-formes/android-8/arch-bras/usr/include - il y a jni.h, log.h etc.
J'ai essayé d'ajouter de la dublicate inclut la jni.h, propre projet, de redémarrer, de reconstruire l'index, le changement .ccp .c, il reste en suspens. Je n'ai pas d'erreurs dans le journal des erreurs, mais des erreurs de syntaxe dans l'éditeur sur la jni fonctions.
NativeLib.java
package com.aristarhys.glow;
public class NativeLib
{
private static final String NATIVE_LIB = "glow";
static
{
System.loadLibrary(NATIVE_LIB);
}
private NativeLib(){};
public static native void test();
}
éclat.h
#ifndef GLOW_H_
#define GLOW_H_
#include <jni.h> //unresolved
//syntax error
JNIEXPORT void JNICALL Java_com_aristarhys_glow_NativeLib_test(JNIEnv* env, jclass cls);
#endif /* GLOW_H_ */
journal.h
#ifndef LOG_H_
#define LOG_H_
#include <android/log.h> //unresolved
#define INFO_TAG "[INFO]"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, INFO_TAG, __VA_ARGS__)
#endif /* LOG_H_ */
éclat.c
#include "glow.h"
#include "log.h"
//syntax error
JNIEXPORT void JNICALL Java_com_aristarhys_glow_NativeLib_test(JNIEnv* env, jclass cls)
{
LOGI("HI");
}
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := glow
LOCAL_SRC_FILES := glow.c
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
source d'informationauteur Aristarhys
Vous devez vous connecter pour publier un commentaire.
J'ai essayé android-ndk-r8b avec
C:\Android\android-ndk-r8b
dans monPATH
variable.Projet compilé sans erreur.
Cependant eclipse "dit" que
Unresolved inclusion: <jni.h>
résolu:
NDK Project->New->Folder->Advanced->Link to alternate location(Linked Folder)
Parcourir le chemin(par exemple):
C:\Android\android-ndk-r8b\platforms\android-8\arch-arm\usr\include
Vous pouvez le faire en choisissant Propriétés du projet
Propriétés -> C/C++ Général -> Préprocesseur..-> Entrées -> Configuration des Entrées -> CDT de l'Utilisateur Réglage des Entrées
Add -> Répertoire include -> Chemin du Système de Fichiers, et entrez le chemin d'accès de l'inclut
J'ai souvent de résoudre des problèmes similaires et qu'il est probablement se produire lorsque vous déplacez ou renommez le dossier de travail du projet.
Également résolu ce problème avec Eclipse 4.3 précédemment ignorées système de construction et définies par l'utilisateur options du compilateur. Maintenant macros pliage dépend de ce drapeaux fonctionne très bien.
Si plus général: NDK plugin peut définir correctement pour vous implique le droit et rien d'autre nécessaire pour bien fonctionner, mais vous avez besoin de nettoyer votre projet bris de la merde, et de la façon la plus simple de le faire est de les réimporter projet.
Si vous utilisez Eclipse Kepler le chemin d'accès pour ajouter le NDK inclure
Propriétés->C/C++ Général->Chemins d'accès et de Symboles.
sur ma version de NDK le chemin de l'fallait:
C:\Program Files (x86)\Android\android-sdk\NDK\android-ndk-r10\plateformes\android-L\arc-bras\usr\include.
Il vous demandera si vous souhaitez reconstruire. Ensuite, les erreurs disparaissent.