Fixing Eclipse Fehler bei der Verwendung von Android NDK und std :: vector

Ich benutze Eclipse, um eine Android-App zu entwickeln, die auch die ndk verwendet. Ich Vektoren in meiner App und ich habe die notwendigen Sachen gemacht, um sie zu holen

APP_STL: = stlport_static

  • Capturing Stdout / Stderr mit NDK
  • Mit meiner eigenen vorgebauten gemeinsamen Bibliothek in einem Android NDK-Projekt
  • Wie bekomme ich "printf" Nachrichten in NDK Anwendung geschrieben?
  • Wie Kopieren und Bearbeiten von Dateien in Android-Shell?
  • Ist es möglich, auf das Lautsprechersignal auf Android zuzugreifen?
  • Was ist die beste Methode, um Videoframes zu rendern?
  • In meiner Anwendung.mk

    Alles funktioniert gut, es kompiliert und läuft, aber Eclipse gibt mir Fehler, wenn ich die Vektoren benutze

    std::vector<int> blah 

    Zum Beispiel erzeugt einen Fehler. Wenn ich den Fehler lösche und weitergehe, kompiliert und läuft es gut.

    Ich habe $ {NDKROOT} / sources / cxx-stl / gnu-libstdc ++ / include hinzugefügt

    In meinem Projekt config unter C ++ Allgemein -> Pfade und Symbole -> include

    Es löst #include <vector> fein (bevor ich den Pfad oben hinzugefügt habe, hatte ich einen Fehler dafür), aber ich bekomme immer noch Fehler mit den Vektoren.

    Wie bekomme ich die Eklipse, um damit aufzuhören, mir Fehler zu geben?

    BEARBEITEN:

    Beispiel Fehler: Symbol 'vector' could not be resolved

    EDIT 2:

    Ich habe versucht zu addieren

     using namespace std; 

    Und dann mit Vektor blah und das verursacht einen anderen Fehler:

    Ungültige Vorlagen-Argumente

  • Android NDK: Link mit einer vorkompilierten statischen Bibliothek
  • Android studio auto complete: wie man Konstruktoren mit parametern anzeigt
  • Build Play Musik-ähnliche Schnittstelle
  • Eclipse "Java Heap Space" Fehler, Eclipse reagiert nicht
  • Warum bekomme ich Leerraum oben und auf der Unterseite meiner ImageView in meinem RelativeLayout?
  • Grenze in Form xml
  • 4 Solutions collect form web for “Fixing Eclipse Fehler bei der Verwendung von Android NDK und std :: vector”

    Ich habe $ {NDKROOT} / sources / cxx-stl / gnu-libstdc ++ / include hinzugefügt

    In meinem Projekt config unter C ++ Allgemein -> Pfade und Symbole -> include

    Ja, das ist es. Ich habe versucht, das gleiche mit dem gleichen Ergebnis hinzuzufügen. Allerdings, wenn Sie stl_port Header hinzufügen

     ${NDKROOT}/sources/cxx-stl/stlport/stlport 

    Es wird den Trick machen. Natürlich ist es nicht nötig zu ändern

     APP_STL := stlport_static 

    Da es nur in Eclipse-Indizes funktioniert. Es wird nützlich sein, bis du etwas benutzt hast, das in gnu-libstdc ++ existiert und existiert nicht stl-port.

    Blockquote

    Ich verklage Eclipse Indigo rc2.

    Ich habe folgende Zeile in Android.mk hinzugefügt

     LOCAL_C_INCLUDES += ${NDKROOT}/sources/cxx-stl/stlport/stlport 

    Und folgende Zeile in Application.mk hinzugefügt

     APP_STL := stlport_static 

    Dann automatisch mein ndk stlport pfad hinzugefügt in

    Eigenschaften -> C ++ Allgemein -> Pfade und Symbole -> include

    Viel Glück! ^^

    Zuerst trafen wir das gleiche Problem mit der Karte und versuchten, "Pfade und Symbole" wie vorgeschlagen hinzuzufügen, aber es würde immer noch nicht funktionieren.

    Später, anstatt

     #include <map> 

    wir verwendeten

     #include <stl/_map.h> 

    Der Fehler ging weg und dann wechselten wir zurück zu include <map> . Eclipse beschwerte sich nicht mehr, dass "Symbol nicht gelöst werden konnte".

    Es scheint, Eklipse hat einen Cache und irgendwie kann es durcheinander gebracht werden, wenn Sie es nicht genau den richtigen Ort, um die Symbole zu finden.

    Ich weiß nicht, in welcher Phase es funktioniert, aber:

    1. Hinzufügen zu Application.mk APP_STL := gnustl_static

    2. Hinzufügen hinzufügen zu den Projekteigenschaften-> C / C ++ Allgemein -> Pfade und Symbole
      'NDK root path'/'your directory to android platform'/arch-arm/usr/include 'NDK root path'/sources/cxx-stl/gnu-libstdc++/4.9/include 'NDK root path'/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include/bits

    3. Deaktivieren Sie alle Warnungen Fehler in Projekteigenschaften-> C ++ Allgemein-> Code Analisis.

    4. Projekt-Eigenschaften-> C ++ Build-> Builder-Einstellungen -> Deaktivieren Sie den Befehl default build verwenden. Build-Befehl leer machen.
    5. Weiter konfigurieren NDK Builder: Projekteigenschaften-> Builder-> Neu-> Programmieren und Füllen Name (Ihr Name Build conf), Standort (Pfad zum NDK-Stammverzeichnis), Arbeitsverzeichnis (Pfad zu Projektverzeichnis). -> Aktualisieren und überprüfen Sie bestimmte Ressourcen (Ihr libs Ordner im Projekt). -> Build Options check Geben Sie den Arbeitssatz der relevanten Ressourcen an und ändern Sie den 'jni' Ordner mit Ihrer Quelle.

    Arbeitete in Ubuntu 15.04. Eklipse 3.8.1. Android NDK r10e.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.