首页 > 解决方案 > Android Studio 返回类型不匹配

问题描述

问题:

有谁知道为什么 CallCharMethod 不起作用?它正在记录 CallCharMethodV,这很奇怪,因为如下所示,我没有使用 CallCharMethodV。一些帮助将不胜感激。

错误:

应用程序中的 JNI 检测到错误:CallCharMethodV 的返回类型与 java.lang.CharSequence android.widget.TextView.getText() 不匹配

代码:

globalEnv->CallVoidMethod(jobj, globalEnv->GetMethodID(env->GetObjectClass(jobj), "sendToastMessage", "(Ljava/lang/CharSequence;)V"),
            env->CallCharMethod(jview, env->GetMethodID(env->FindClass("android/widget/TextView"), "getText", "()Ljava/lang/CharSequence;")));

标签: androidjava-native-interface

解决方案


java.lang.CharSequence是一个接口,因此从该方法返回的任何内容都将是一个对象,而不是char. 改为使用CallObjectMethod

它抱怨 CallCharMethod V的原因是因为 CallCharMethod 将其变量参数列表转发给该方法。


推荐阅读