我正在使用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");
我已经检查了方法的签名,没关系,我已尝试过其他可用的签名,但没有成功...