Eclipse ADT - Nicht aufgelöste Aufnahme jni.h

7

Auf meiner Windows-Plattform habe ich die neueste Version von adt bundle (20140321) und ndk (r9d) installiert. Die Installation ist so sauber wie es nur geht. Die Umgebungsvariablen NDK_ROOT, PATH usw. sind alle richtig definiert.

Die App, an der ich gerade arbeite, hat einen C ++ eigenen Code. Der Code wird sowohl außerhalb von Eclipse als auch in Eclipse erstellt.

Das Problem ist jedoch, dass der Editor beklagt, dass jni.h eine ungelöste Aufnahme ist.

Projekt - & gt; Eigenschaften - & gt; C / C ++ Allgemein - & gt; PathsAndSymbols zeigt Include-Verzeichnisse und eines der Verzeichnisse ist C: \ adt \ ndk \ platforms \ android-19 \ arch-arm \ usr \ einschließen. Ich habe überprüft, dass jni.h in diesem Verzeichnis vorhanden ist.

Ich habe bereits alle anderen Nachrichten in diesem Forum überprüft, konnte aber keine konkreten Schritte finden. Schätze deine Führung. Grüße.

    
Peter 17.04.2014, 01:16
quelle

4 Antworten

25

Ich stieß auf ein ähnliches Problem mit einem Arbeitsprojekt mit Android NDK-basiertem Code nach dem Update auf Eclipse Kepler. Ich beobachtete ähnliche Dinge: Die Header-Dateien würden korrekt unter "includes" im Projekt aufgelistet, der eigentliche Build (via ndk-build) funktionierte gut, aber der Editor von Eclipse konnte keine Header in Standard-Systemverzeichnissen finden (alle Header mit & lt ; & gt; Klammern).

Ich habe viele verschiedene Fehlerbehebungen ausprobiert, einschließlich Toolset-Wechsel, Neuaufbau von Indizes usw. ohne Erfolg.

Schließlich habe ich die C-Natur vollständig aus dem Projekt entfernt und über das Menü "Android Tools" in Eclipse hinzugefügt.

Entfernen der C-Natur:

Der einzige Weg, wie ich die C-Natur zuverlässig aus dem Projekt entfernen konnte, war die Bearbeitung der Eclipse-Datei .project für das Projekt.

  1. Schließen Sie das Eclipse-Projekt (z. B. durch Beenden von Eclipse).

  2. Öffnen Sie die Datei .project in einem Text- oder XML-Editor. Es wird mindestens 2 <buildCommand> Knoten geben, die entfernt werden müssen. Entfernen Sie den Knoten <buildCommand> mit dem Namen org.eclipse.cdt.managedbuilder.core.genmakebuilder und alle untergeordneten Elemente und den Knoten <buildCommand> mit dem Namen org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder und den untergeordneten Elementen. Zum Schluss die Zeilen entfernen:

    <nature>org.eclipse.cdt.core.cnature</nature> %Code% %Code% <nature>org.eclipse.cdt.core.ccnature</nature>

  3. Entfernen Sie die <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> -Datei vollständig.

Hinzufügen der nativen Android-Natur

Öffnen Sie das Projekt in Eclipse erneut. Klicken Sie dann im Projekt-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie im Kontextmenü "Android Tools" die Option "Native Unterstützung hinzufügen ...".

Wenn Sie sich die Änderungen ansehen, die in den Dateien .project und .cproject vor und nach dieser Änderung vorgenommen wurden, wurden den Android NDK-Tools vor allem neue Versionsnummern hinzugefügt. Auf jeden Fall hat es das Problem für mich gelöst.

    
bleater 19.05.2014 04:18
quelle
3

nach dem Hinzufügen der nativen Unterstützung, Rechtsklick-Projekt, Hinzufügen von Includes in c / c ++ allgemein - & gt; Pfade und Symbole & gt; & gt; enthält z. B. add include als% NDK_HOME% \ platforms \ android-19 \ arch-arm \ usr \ include

    
Jianxing Fan 03.09.2014 09:41
quelle
1

Ich hatte vor ein paar Tagen das gleiche Problem. Ich habe hier im Stackoverflow eine Lösung in einer anderen Frage gefunden, aber jetzt kann ich den Link nicht finden.

In Eclipse: Klicken Sie mit der rechten Maustaste auf Ihr Projekt & gt; Eigenschaften & gt; C / C ++ Allgemein & gt; Codeanalyse & gt; Starten und Deaktivieren beider Optionen ("Mit Build ausführen" und "Während der Eingabe ausführen").

Es scheint ein Problem mit CDT und dem Indexer zu geben, wodurch Sie das Problem verbergen. Der Editor wird sich immer noch beschweren, aber jetzt sollten Sie in der Lage sein, Ihre Anwendung auszuführen und zu debuggen.

    
Pau Guillamon 17.04.2014 10:40
quelle
1

Ich habe das für adt-bundle-windows-x86_64-20140321 gelöst:

  1. Es sind keine Umgebungsvariablen festgelegt, nur der NDK-Speicherort wurde unter Einstellungen & gt; Android & gt; NDK.
  2. Ich habe einen neuen, sauberen Eclipse-Arbeitsbereich erstellt.
  3. Gelöscht von meinem Projekt mit C ++ Code nächste Dateien / Ordner:
  

.settings
.classpath
.cproject
.project
project.properties

  1. Eclipse & gt; Neu & gt; Andere & gt; Android & gt; Android-Projekt aus bestehendem Code & gt; Zeigen Sie dann mit Ihrem Projekt auf den Ordner, lassen Sie es von Eclipse erkennen, aktivieren Sie "Projekt in Arbeitsbereich kopieren" und klicken Sie auf Ok / Weiter, was auch immer.
  2. Projekt säubern.
  3. Rechtsklick auf Projekt & gt; Android-Tools & gt; Fügen Sie native Unterstützung hinzu
  4. Rebuild, möglicherweise Neustart des Arbeitsbereichs.

Auch dieses Problem wurde behoben, bei dem Eclipse 4.3 zuvor Build-System- und benutzerdefinierte Compiler-Flags ignoriert hat. Jetzt funktionieren Makros, die abhängig von diesen Flags usw. funktionieren.

Wenn allgemeiner - NDK plugin kann richtig für Sie richtiges includes und alles andere definieren, das benötigt wird, um gut zu arbeiten, aber Sie müssen Ihr Projekt von defektem Mist säubern.

    
Dima 05.05.2014 15:01
quelle

Tags und Links