Android Std und Stl Unterstützung

Ich spiele mit android ndk. Ich verwende Windows Vista mit Cygwin (neueste Version). Ich kompilierte und startete die hallo Welt jni Probe auf meinem Handy. Es funktioniert. Der Code ist (ist eine .cpp-Datei):

#include <string.h> #include <jni.h> extern "C" { JNIEXPORT jstring JNICALL Java_org_android_helloworld_HelloworldActivity_invokeNativeFunction(JNIEnv* env, jobject javaThis); }; jstring Java_org_android_helloworld_HelloworldActivity_invokeNativeFunction(JNIEnv* env, jobject javaThis) { return env->NewStringUTF("Hello from native code!"); } 

Ich wollte einige Änderungen hinzufügen, nur um mit ihm ein bisschen zu spielen:

  • Wie benutzt man in Android Studio
  • Android Activity Übergänge mit Support v4 up to date mit Android L
  • Wie man die Benachrichtigung abträgt, nachdem die Aktion angeklickt wurde
  • Starten des Android-Emulators in SDK-Tools, Revision 12
  • Fehler: ANDROID_HOME ist nicht gesetzt und "android" Befehl nicht in deinem PATH. Sie müssen mindestens eine dieser Bedingungen erfüllen
  • Haben Android-Geräte eine statische IP-Adresse?
  •  #include <algorithm> 

    Und dann, in der obigen Funktion, fügte ich hinzu:

     int a; a=std::min<int>(10, 5); 

    Aber der Compiler sagt, dass es die Datei 'Algorithmus' nicht finden kann und dass min () nicht Teil von std ist.

    Nach ein bisschen suchen, habe ich festgestellt, dass die android ndk hat ein gnu-libstdc ++ Verzeichnis mit allen std-Dateien benötigt. Wenn ich die NDK-Dokumente lese, habe ich gelernt, dass usint std :: * ohne Änderungen am Code funktionieren sollte (wenn man die richtigen Header-Dateien enthält). Aber es scheint, dass gcc auf cygwin nicht in der Lage ist, die benötigten Dateien zu finden.

    Was sind die Schritte zu tun, um std und stl innerhalb einer .cpp-Datei in einer Android-ndk-App verwenden zu können?

  • Geben Sie Text der ausgewählten Registerkarte eine andere Farbe mit ViewPagerIndicator
  • Build gradle system app als Teil von AOSP build
  • Fehler beim Ausführen von Builder 'Android Resource Manager' auf ADT
  • Android Studio kompilieren Fehler: Enum Konstante INSTANT_RUN_REPLACEMENT existiert nicht in der Klasse
  • Android Espresso, Wake up Gerät vor Test. Wie benutzt man ein benutzerdefiniertes Manifest für Test?
  • Fragment Lebenszyklus: Wenn "ondestroy" und "ondestroyview" nicht aufgerufen werden?
  • One Solution collect form web for “Android Std und Stl Unterstützung”

    Von NDK r5's docs / CPLUSPLUS-SUPPORT.html:

    Standardmäßig werden die Header und Bibliotheken für die minimale C ++ – Laufzeitbibliothek (/system/lib/libstdc++.so) beim Erstellen von C ++ – Quellen verwendet.

    Sie können jedoch eine andere Implementierung auswählen, indem Sie die Variable APP_STL auf etwas anderes in Ihrer Application.mk setzen, zB:

    APP_STL: = stlport_static

    Zur Auswahl der statischen STLport-Implementierung, die mit diesem NDK bereitgestellt wird. Wert APP_STL Werte sind die folgenden:

    System -> Verwenden Sie die Standard-C ++ – Laufzeitbibliothek.
    Stlport_static -> Verwenden Sie STLport als statische Bibliothek.
    Stlport_shared -> STLport als freigegebene Bibliothek verwenden
    Gnustl_static -> GNU libstdc ++ als statische Bibliothek verwenden.

    Welches NDK benutzt du? Haben Sie versucht, eine der Beispielanwendungen zu kompilieren, die die STL wie test-libstdc ++ nutzen?

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