加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

在 Android NDK 中使用 C++ 头文件(如:#include <vector>)

(2013-01-15 18:37:30)
标签:

杂谈

分类: 开源项目之Android
首先,要在 工程目录/jni/Application.mk 文件中添加如下一行:
APP_STL                 := stlport_static

I tried using stlport_shared, but no luck. Same with libstdc++.
我尝试过使用 stlport 动态库,但是不行。同 libstdc++ 一样。

下面举个例子:

在 工程目录/jni/Android.mk 文件中添写如下内容:
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := hello-jni
LOCAL_SRC_FILES := hello-jni.cpp
LOCAL_LDLIBS    := -llog

include $(BUILD_SHARED_LIBRARY)

以上内容中,没有什么是专用的,但是一定要确保源代码文件的扩展名为 .cpp

在 工程目录/jni/hello-jni.cpp 文件中添写如下内容:
#include
#include
#include

#include
#include

#define  LOG_TAG    "hellojni"
#define  LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define  LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)

#ifdef __cplusplus
    extern "C" {
#endif

// 注释省略    
void
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
                                                  jobject thiz )
{
    std::vector vec;

    // Go ahead and do some stuff with this vector of strings now.
    // 现在开始做一些 矢量字符串 的调用吧
}

#ifdef __cplusplus
}
#endif

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有