NDK下STL编译不成功,怎么办? 本帖最后由 lcb 于 2011-11-23 22:28:34 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 貌似就是不能使用 STL 的;如果是移植,自己实现相关的类吧; NDK 中的异常也是不支持的,但是可以使用 C 的错误处理机制 我用的android-ndk-r6,它已经自带STL支持了,编译程序的时候也可以看到cygwin编译STL并且成功,但在程序里只要一写STL相关的代码就编译失败。 android.mk你配置是否正确呢库或头文件有包含正常吗 你vector的头文件有米有包含? 我的:Application.mkAPP_STL := stlport_staticAndroid.mkLOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := hello-jniLOCAL_SRC_FILES := hello-jni.cppLOCAL_CFLAGS := -fexceptionsinclude $(BUILD_SHARED_LIBRARY) 有啊,全部源码如下:#include <string.h>#include <jni.h>#include <iostream>#include <vector>using namespace std;#ifndef _Included_com_example_hellojni_HelloJni#define _Included_com_example_hellojni_HelloJni#ifdef __cplusplusextern "C" {#endifjstringJava_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env, jobject thiz ){ vector<int> vec; vec.push_back(1); return env->NewStringUTF("Hello from JNI!");}#ifdef __cplusplus}#endif#endif 把支持异常的 -fexceptions 去掉 stlsport不支持rtti和异常,换gnustl吧 http://stackoverflow.com/questions/6233274/android-ndkcompilation-errorlibstdcmultiple-definition-of-stdbad-excepti这个人强啊 短信数据库可以增加一个属性吗? 如何判断apk是launcher还是home camera切换到Record模式就挂~~急救 在android里面如何用一个服务启动另外一个程序呢? Android OOM问题 动态加载 新手高分求教!急!谢了 android中的动画结束后能保存结束状态执行下一个动画吗 蓝牙语音传输问题 新手环境部署问题 view在屏幕随手指拖动,放开手指还原位置时屏幕有残影 怎样自定义AlertDialog的title栏的背景颜色
如果是移植,自己实现相关的类吧;
NDK 中的异常也是不支持的,但是可以使用 C 的错误处理机制
我用的android-ndk-r6,它已经自带STL支持了,编译程序的时候也可以看到cygwin编译STL并且成功,但在程序里只要一写STL相关的代码就编译失败。
你配置是否正确呢
库或头文件有包含正常吗
我的:
Application.mk
APP_STL := stlport_staticAndroid.mk
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.cpp
LOCAL_CFLAGS := -fexceptionsinclude $(BUILD_SHARED_LIBRARY)
有啊,全部源码如下:
#include <string.h>
#include <jni.h>
#include <iostream>
#include <vector>using namespace std;#ifndef _Included_com_example_hellojni_HelloJni
#define _Included_com_example_hellojni_HelloJni
#ifdef __cplusplus
extern "C" {
#endifjstring
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
jobject thiz )
{
vector<int> vec;
vec.push_back(1);
return env->NewStringUTF("Hello from JNI!");
}#ifdef __cplusplus
}
#endif
#endif