示例代码如下:
==============================================================================================static jobject g_obj,g_ctorID, g_mid = NULL;
static jclass  g_cls, g_strclass = NULL;JNIEXPORT jstring JNICALL Java_com_test_HelloWorld_helloDisplay
  (JNIEnv *env, jobject cls)
 {
    LOGD("-----1-----");
 jclass strclass = (*env)->FindClass(env, "java/lang/String");
 if(strclass == NULL){
  LOGD("FindClass strClass error!\n");
  return;
 }
     g_strclass =(*env)->NewGlobalRef(env, strclass);
 
 LOGD("-----2-----");
 jmethodID ctorID = (*env)->GetMethodID(env, strclass, "<init>", "([BLjava/lang/String;)V");
 if(ctorID == NULL){
  LOGD("FindClass ctorID error!\n");
  return;
 }
 
 LOGD("-----3-----");
     jmethodID mid = (*env)->GetMethodID(env,strclass,"getBytes","(Ljava/lang/String;)[B");
 if(mid == NULL){
  LOGD("GetMethodID mid error!\n");
  return;
 }
 LOGD("-----4-----");
 g_mid = (*env)->NewGlobalRef(env, mid);
 LOGD("-----5-----");
     g_ctorID = (*env)->NewGlobalRef(env, ctorID);
 LOGD("-----6-----");
    return (*env)->NewStringUTF(env, "Hello World!");
 
  }
=============================================================================================当对一个方法 NewGlobalRef()全局化与勇士就报警告,log如下:------------------------------------------------------------------------------W/Hello   (  361): -----1-----
W/Hello   (  361): -----2-----
W/Hello   (  361): -----3-----
W/Hello   (  361): -----4-----
W/dalvikvm(  361): JNI WARNING: 0x5692c750 is not a valid JNI reference
W/dalvikvm(  361):              in Lcom/test/HelloWorld;.helloDisplay:()Ljava/lang/String; (NewGlobalRef)
I/dalvikvm(  361): "main" prio=5 tid=1 RUNNABLE
I/dalvikvm(  361):   | group="main" sCount=0 dsCount=0 obj=0x409dc460 self=0x12800
I/dalvikvm(  361):   | sysTid=361 nice=0 sched=0/0 cgrp=default handle=1074082952
I/dalvikvm(  361):   | schedstat=( 223000000 335000000 88 ) utm=15 stm=7 core=0
I/dalvikvm(  361):   at com.test.HelloWorld.helloDisplay(Native Method)
I/dalvikvm(  361):   at com.test.HelloWorld.onCreate(HelloWorld.java:19)
I/dalvikvm(  361):   at android.app.Activity.performCreate(Activity.java:4465)
I/dalvikvm(  361):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
I/dalvikvm(  361):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
I/dalvikvm(  361):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
I/dalvikvm(  361):   at android.app.ActivityThread.access$600(ActivityThread.java:123)
I/dalvikvm(  361):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
I/dalvikvm(  361):   at android.os.Handler.dispatchMessage(Handler.java:99)
I/dalvikvm(  361):   at android.os.Looper.loop(Looper.java:137)
I/dalvikvm(  361):   at android.app.ActivityThread.main(ActivityThread.java:4429)
I/dalvikvm(  361):   at java.lang.reflect.Method.invokeNative(Native Method)
I/dalvikvm(  361):   at java.lang.reflect.Method.invoke(Method.java:511)
I/dalvikvm(  361):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
I/dalvikvm(  361):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
I/dalvikvm(  361):   at dalvik.system.NativeStart.main(Native Method)
I/dalvikvm(  361): 
E/dalvikvm(  361): VM aborting
F/libc    (  361): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1)
分不多,真心向各位大侠求教。是不是在 NewGlobalRef()对一个方法全局化引用处理方式不正确还是其他原因?(这种引用方式在hisi的平台上运行是OK,但是在amlogic平台和模拟器上运行上不通过)