1.编写java ToastPrivate.java
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);
}