android RPC通过JNI 反向调用java方法 大佬们帮忙看看哪里有问题

#include <jni.h>
#include <android/log.h>
 
#define  TAG "xc"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,TAG, __VA_ARGS__)
 
JavaVM *javaVm;//全局JVM
JNIEnv *jniEnv;//全局ENV
jclass globalClass1;//全局Jclass1
jclass globalClass2;//全局Jclass2
jclass jclass1;//全局Jclass1
jclass jclass2;//全局Jclass2
jmethodID jmid1;//全局方法1
jmethodID jmid2;//全局方法1
 
 
//方法1 提供给RPC线程HTTP GET调用 出错
void TestFun1(char* Message) {
    LOGD("TestFun1");
    if (javaVm != NULL){
       LOGD("TestFun1 获取JVM成功"); 
    }
 
    if (globalClass1 != NULL){
        LOGD("TestFun1 class获取成功"); 
    }
 
    if (jmid1 != NULL){
        LOGD("TestFun1 jmid1获取成功"); 
    }
 
    int status = (*javaVm)->AttachCurrentThread(javaVm,&jniEnv,NULL);
    LOGD("TestFun1获取JNIENV");
    if (status = JNI_OK) {
        LOGD("TestFun1获取env成功");
        jstring str = (*jniEnv)->NewStringUTF(jniEnv,"Testfun1呼叫");
        (*jniEnv)->CallStaticVoidMethod(jniEnv,globalClass1,jmid1,str);
    }
}
 
 
 
//初始化成功
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) {
    LOGD("JNI_OnLoad 加载");
    javaVm = vm;
    LOGD("JNI_OnLoadvm 获取完成");
    int status = (*vm)->GetEnv(vm, (void **) &jniEnv, JNI_VERSION_1_6);
    if (status == JNI_OK)
    {
       LOGD("JNI_OnLoad 获取env成功");
       jclass1 = (*jniEnv)->FindClass(jniEnv,"com/zidong/sotest/MainActivity");
       globalClass1=(jclass)(*jniEnv)->NewGlobalRef(jniEnv,jclass1);
       jmid1 = (*jniEnv)->GetStaticMethodID(jniEnv,jclass1, "showmessage1", "(Ljava/lang/String;)V");
       if (globalClass1 != NULL){
          LOGD("JNI_OnLoad class获取成功"); 
       }
 
       if (jmid1 != NULL){
          LOGD("JNI_OnLoad jmid1获取成功"); 
       }
       //失败
       TestFun1("初始化测试调用");
    }
    return JNI_VERSION_1_6;
}
 
void JNI_OnUnload(JavaVM* vm, void* reserved) {
     LOGD("JNI卸载");
}
 

https://www.cnblogs.com/vincentYw/p/11819244.html