android JNI java与C++传递String数组(引用类型)

来源:互联网 发布:智能数据营销 编辑:程序博客网 时间:2024/05/22 14:38

android java

public class MainActivity extends AppCompatActivity {    static{        System.loadLibrary("myndk");    }    private TextView textView;    public native String getStr(String[] oa);    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        textView = (TextView)findViewById(R.id.text);        String[] oa={"你呀","我呀"};        textView.setText(getStr(oa));    }}



C++ (这里是支持C++11的)

#include <iostream>#include <string>JNIEXPORT jstring JNICALLJava_com_myndk_MainActivity_getStr(JNIEnv *env, jobject instance,jobjectArray oa){    jsize size = env->GetArrayLength(oa);    for(int i=0;i<size;i++)    {        jstring obj = (jstring)env->GetObjectArrayElement(oa,i);        std::string sstr = (std::string)env->GetStringUTFChars(obj,NULL);//得到字符串    }    std::string str="NDK";    return env->NewStringUTF(str.data());}


原创粉丝点击