2

我正在使用 NDK 开发一个原生 android 项目。我的代码只有 C,我需要通过 JNI 调用一些 java 函数。

我试过了,我可以从类中调用一些方法,例如android, view, WindowManage。但是当我尝试使用时,TextView.setText我得到了一个java.lang.NoSuchMethodError例外。

这是代码:

 JNIEnv* jni;
 state->activity->vm->AttachCurrentThread(&jni, NULL);


 jclass activityClassMine = jni->FindClass("android/widget/TextView");
 if(!(activityClassMine))
 LOGI("can't find TextView class...");

 jmethodID SetTextColour = jni->GetMethodID
                              ( activityClassMine
                              , "setTextColor"
                              , "(I)V");        //this works !!!!
 if(!(SetTextColour))
LOGI("textColour Failed...");

 jmethodID getSetText = jni->GetMethodID
                              ( activityClassMine
                              , "setText"
                              , "(Ljava/lang/CharSequence;)V");

 if(!(getSetText))      //failed                               
 LOGI("setText Failed");

我已经检查了该方法的签名,没关系,我尝试了该方法的其他可用签名,但没有成功...

4

0 回答 0