Android NDK 开发 C++调用java数组 以及方法
2017-10-18 11:40
633 查看
1.编写java ToastPrivate.java
public class ToastPrivate {
}
2.cpp 编写代码
JNIEXPORT void JNICALL
Java_com_ucsmy_ycfinance_modules_set_AboutUSActivity_TestProvider(JNIEnv *env, jobject instance) {
}
public class ToastPrivate {
private String[] name; public static String getTime() { UIUtils.showToast("getTime"); return String.valueOf(System.currentTimeMillis()); } public void sayHello(String msg) { LogUtils.d("sayHello"); UIUtils.showToast(name[1]); }
}
2.cpp 编写代码
JNIEXPORT void JNICALL
Java_com_ucsmy_ycfinance_modules_set_AboutUSActivity_TestProvider(JNIEnv *env, jobject instance) {
jclass TestProviderClass = env->FindClass("com/ucsmy/ycfinance/modules/set/ToastPrivate"); jmethodID methodID = env->GetStaticMethodID(TestProviderClass, "getTime", "()Ljava/lang/String;"); //env->CallStaticObjectMethod(TestProviderClass, methodID); //默认构造函数,不传参数 jmethodID construction_id = env->GetMethodID(TestProviderClass, "<init>", "()V"); //通过NewObject来创建对象 jobject mTestProviderObject = env->NewObject(TestProviderClass, construction_id); jmethodID sayHelloMethodID = env->GetMethodID(TestProviderClass, "sayHello", "(Ljava/lang/String;)V"); //jclass class = env->GetObjectClass(mTestProviderObject); //jclass clazz, const char* name, const char* sig //jfieldID fieldID = env->GetFieldID(TestProviderClass,"name","Ljava/lang/String;"); jfieldID fieldID = env->GetFieldID(TestProviderClass, "name", "[Ljava/lang/String;"); //jobject obj, jfieldID fieldID, jobject value jstring stri = env->NewStringUTF("天天上上,好好学习"); jclass stringClass = env->FindClass("java/lang/String"); //jsize length, jclass elementClass, jobject initialElement jobjectArray objectA = env->NewObjectArray(3, stringClass, stri); jstring stri1 = env->NewStringUTF("連軍一定要 天天上上,好好学习"); //jobjectArray array, jsize index, jobject value env->SetObjectArrayElement(objectA,1,stri1); env->SetObjectField(mTestProviderObject, fieldID, objectA); env->CallVoidMethod(mTestProviderObject, sayHelloMethodID, stri);
}
相关文章推荐
- 【学习Android NDK开发】native code通过JNI调用Java方法
- Android NDK 开发(三)JNI 调用Java属性和方法
- 【学习Android NDK开发】native code通过JNI调用Java方法
- 【学习Android NDK开发】native code通过JNI调用Java方法
- 成功实现C/C++调用Java (Android NDK 开发)--参考1
- 【学习Android NDK开发】native code通过JNI调用Java方法
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- 安卓应用开发通过java调用c++ jni的图文使用方法
- 【学习Android NDK开发】native code通过JNI调用Java方法
- android ndk 开发jni调用对象方法,数组参数
- 【JNI开发】C++调用java函数的实现方法
- 【学习Android NDK开发】native code通过JNI调用Java方法
- 【学习Android NDK开发】native code通过JNI调用Java方法
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- Android NDK 开发(三)JNI 调用Java属性和方法
- [置顶] Android Studio3.0开发JNI流程------Java调用C++以及C++调用Java
- Win7 32位系统下Sublime text 3的安装以及配置C/C++、java、python的开发环境方法
- 【学习Android NDK开发】native code通过JNI调用Java方法
- 如何在C/C++中调用Java的方法