1.我使用的方法是静态库的方式,因为动态库的方式一直无法在我的OPPO运行,如果你是使用java来加载的那么推荐你使用动态库运行,我这里为了测试方便,直接在OPPO手机运行C的
这里我基于jsoncpp移植的库,稍后上传,我只是修改了其中的exception,因为ndk并不完全支持C++
链接:https://github.com/2637309949/CODE_NDK_C-_C
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := main # Add your application source files here... LOCAL_SRC_FILES := \ main.cpp LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -llog LOCAL_STATIC_LIBRARIES := libJson include $(BUILD_EXECUTABLE) $(call import-module,jsoncpp-0.5.0)
#include <stdio.h> #include <string> #include <json/json.h> using namespace std; int main(int argc,char **argv) { printf("%s\n","start..."); Json::Value root; Json::Value arrayObj; Json::Value item; for(int i=0;i<5;i++){ char buffer[20]; sprintf(buffer,"key%d",i); item[buffer] = i; arrayObj.append(item); } root["key1"] = "value1"; root["key2"] = "value1"; root["array"] = arrayObj; //生成string json std::string out = root.toStyledString(); std::cout << out << std::endl; //一些有用的api std::cout << root.size() <<std::endl;; std::cout << root.removeMember("key2") <<std::endl;; std::cout << root.toStyledString() <<std::endl;; return 1; }