Hi,all.I try to call java method in C,Here is my code: 
       
       LOGI("TOGetContractName"); 
       jclass act_class = (*env)->FindClass(env,"android/app/ Activity"); 
       if(act_class == 0) 
           LOGI("Can't find act_class"); 
        else LOGI("Find act_class success!"); 
        jobject act_obj = getInstance(env, act_class); 
        if(act_obj == 0) 
           LOGI("Can not find act_obj!"); 
        else  LOGI("Create act_obj success!"); 
       jmethodID act_method = (*env)- >GetMethodID(env,act_class,"getContentResolver",()Landroid/content/ContentResolver;"); 
       if(act_method == 0) 
            LOGI("Can't find getCR method"); 
       else LOGI("Create CR method success !"); 
       (*env)->CallObjectMethod(env,act_obj,act_method); And the logs are: 
I/Test    (  862): TOGetContractName 
I/Test    (  862): Find act_class success! 
I/Test    (  862): Create act_obj success! 
I/Test    (  862): Create CR method success ! 
W/dalvikvm(  862): JNI WARNING: JNI method called with exception 
raised 
W/dalvikvm(  862):              in Lcom/example/Test;.GetContractName 
()Ljava/lang/String; (NewStringUTF) 
W/dalvikvm(  862): Pending exception is: 
I/dalvikvm(  862): Ljava/lang/NullPointerException;: 
I/dalvikvm(  862):      at 
android.content.ContextWrapper.getContentResolver(ContextWrapper.java: 90) 
I/dalvikvm(  862):      at com.example.Test.GetContractName(Native Method) 
I/dalvikvm(  862):      at com.example.Test.onCreate(Test.java:16) 
I/dalvikvm(  862):      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: 1047) 
I/dalvikvm(  862):      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java: 1611) 
I/dalvikvm(  862):      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 1663) 
I/dalvikvm(  862):      at android.app.ActivityThread.access $1500(ActivityThread.java:117) 
I/dalvikvm(  862):      at android.app.ActivityThread $H.handleMessage(ActivityThread.java:931) 
I/dalvikvm(  862):      at android.os.Handler.dispatchMessage(Handler.java: 99) 
I/dalvikvm(  862):      at android.os.Looper.loop(Looper.java:123) I/dalvikvm(  862):      at android.app.ActivityThread.main(ActivityThread.java:3683) 
I/dalvikvm(  862):      at java.lang.reflect.Method.invokeNative(Native Method) 
I/dalvikvm(  862):      at java.lang.reflect.Method.invoke(Method.java: 507) 
I/dalvikvm(  862):      at com.android.internal.os.ZygoteInit 
$MethodAndArgsCaller.run(ZygoteInit.java:839) 
I/dalvikvm(  862):      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
I/dalvikvm(  862):      at dalvik.system.NativeStart.main(Native Method) 
I/dalvikvm(  862): "main" prio=5 tid=1 NATIVE As we can see,the problem exits in: (*env)- >CallObjectMethod(env,act_obj,act_method); 
But I can't know why. 
Here is my guess: 
Class Activity extends ContextThemeWrapper,and ContextThemeWrapper 
extends ContextWrapper,but I create an Activity obj,it can't call 
ContextWrapper.getContentResolver method. 
Waiting for help. 
Thanks.