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.
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.
Schließen Sie das Eclipse-Projekt (z. B. durch Beenden von Eclipse).
Ö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>
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.
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
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.
Ich habe das für adt-bundle-windows-x86_64-20140321 gelöst:
.settings
.classpath
.cproject
.project
project.properties
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.
Tags und Links eclipse android android-ndk