使用STL和Android NDK C++

Har*_*der 25 c++ android stl android-ndk

我试图在Android NDK C++文件中使用STL.我尝试使用map,vector和各种其他stl类,我无法编译它,因为它找不到文件.

我的类标题以:

#pragma once
#include <map>
#include <iostream>
#include <stdexcept>
#include <vector>
#include <set>
#include <list>
#include <algorithm>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

2>  In file included from jni/../../Classes/Assist/Test.cpp:1:
2>  jni/../../Classes/Assist/Test.h:2:15: error: map: No such file or directory
2>  jni/../../Classes/Assist/Test.h:3:20: error: iostream: No such file or directory
2>  jni/../../Classes/Assist/Test.h:4:21: error: stdexcept: No such file or directory
2>  jni/../../Classes/Assist/Test.h:5:18: error: vector: No such file or directory
2>  jni/../../Classes/Assist/Test.h:6:15: error: set: No such file or directory
2>  jni/../../Classes/Assist/Test.h:7:16: error: list: No such file or directory
2>  jni/../../Classes/Assist/Test.h:8:21: error: algorithm: No such file or directory
2>  In file included from jni/../../Classes/Assist/Test.cpp:1:
Run Code Online (Sandbox Code Playgroud)

我阅读了各种帖子并在application.mk文件中尝试了"APP_STL:= stlport_static"和"APP_STL:= gnustl_static",但它没有用.

有谁知道我怎么能让这个工作?

The*_*ner 43

我有同样的问题,然后意识到我需要把:APP_STL:= stlport_static

在Application.mk中,而不是Android.mk ... doh

然后我需要添加:$ {ANDROID_NDK_ROOT}\sources\cxx-stl\stlport\stlport

在eclipse中包含路径,使其不会在UI中抱怨错误


Har*_*der 2

看来这个错误是由于 NDK 的损坏造成的。我重新安装了它(删除,解压),现在它可以工作了。