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