unaufgelöster Einschluss in den Java-Header in JNI

7

Dies ist meine Java-Datei, für die ich eine Header-Datei mit Java für eine Android-opencv-Anwendung generieren wollte.

%Vor%

Die generierte Header-Datei ist wie folgt:

%Vor%

Die Eclipse weist darauf hin, dass die Aufnahme von jni.h in die Header-Datei ungelöst ist. Was sind die Schritte, die unternommen werden müssen, um das zu lösen ????

Grüße, srijith

    
srijith 10.04.2012, 11:27
quelle

4 Antworten

26

Ich habe auch Probleme damit, also für jeden, der darüber stolpert ...

Ich habe das JNI-Problem von Eclipse gelöst - Sie haben vielleicht bereits Schritt 1 oder etwas Ähnliches gemacht

  1. Datei - & gt; Neu - & gt; Andere- & gt; C ++ & gt; In C ++ - Projekt konvertieren

  2. Right Klicken Sie auf Project Head - & gt; Eigenschaften - & gt; C ++ Allgemein - & gt; Pfade und Symbole

  3. Fügen Sie einen ähnlichen Pfad wie unter GNU und GNUC ++ - Spracheinträge

    hinzu

    / NDK / Plattformen / Android-9 / arch-arm / usr / include

    Ihr Pfad hängt davon ab, wie Sie eingerichtet sind, welche Plattformnummer etc.

    Sobald dies erledigt ist, erstellen Sie die Indizes neu, wenn Sie dazu aufgefordert werden.

  4. Schließen Sie Ihr Projekt, öffnen Sie es erneut und erstellen Sie es anschließend (oder es kann sofort passieren)

In meinem Fall wurde die JNI.h gefunden, ABER die JNIEnv usw. wurden immer noch nicht erkannt, obwohl sie in der JNI.h Datei sind.

Beachten Sie auch, dass es für jeden, der dieses Problem hat, nicht hindert, zu bauen, Sie müssen nur die problematischen Dateien schließen, dann öffnen und schließen Sie Ihr Projekt, um die Fehler loszuwerden (was für ein Schmerz)

UPDATE: FIXED!

In edition auf die oben in Indigo tun Sie das folgende aus dem Menü / dialog

Window- & gt; Einstellungen- & gt; C / C ++ - & gt; Index überprüfen Sie die "Index Unbenutzte Header" neuindex / Build wenn nötig

Sie müssen möglicherweise auch "/NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/lib/gcc/arm-linux-androideabi/4.4.3/include" über dem Include hinzufügen Ich erwähnte oben zu den Spracheinträgen.

Alle Symbole werden jetzt erkannt - Hoffe, das hilft jemandem, der mich verrückt gemacht hat.

    
Idistic 27.04.2012 07:19
quelle
1

FEST!

Zu Application.mk hinzufügen:
APP_STL := gnustl_shared

Gehe zu Properties -> C/C++ General -> Preprocessor Include-> Entries -> Add -> Include Directory -> File System Path und wähle den Pfad der Includes wie:

%Vor%

!!! Aktivieren Sie das Kontrollkästchen "Contains system headers" für jeden enthaltenen Pfad. !!!

Gehe zu Properties -> C/C++ General -> Preprocessor Include-> Providers -> Check CDT GCC Built-in Compiler Settings -> OK

Säubern und erstellen Sie Ihr Projekt neu.

    
Volodymyr Kulyk 09.12.2014 14:03
quelle
0

Ich hatte das gleiche Problem mit Android JNI. Ich habe es behoben, indem ich das Projekt auf den Include-Pfad von Android jni.h in der NDK-Quelle zeigte Hier erfahren Sie, wie Sie NDK von hier herunterladen können: Ссылка

Details über das Update finden Sie hier:

Android Add Native Unterstützung - ungelöst jni.h, android / log.h usw.

    
Sriram Murali 28.04.2014 20:21
quelle
-3

In meinem Fall habe ich gerade das Projekt geschlossen und geöffnet, dann sind die Fehler verschwunden.

    
hao 20.08.2014 04:55
quelle

Tags und Links