Android Studio 返回类型不匹配

标签 android java-native-interface

问题:

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

错误:

JNI DETECTED ERROR IN APPLICATION: the return type of CallCharMethodV does not match 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;")));

最佳答案

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

它提示 CallCharMethodV 的原因是因为 CallCharMethod 将其可变参数列表转发给该方法。

关于Android Studio 返回类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58199996/

相关文章:

java - 两个日期之间的 Android 天数

java - 如何从命令行运行 nar 文件?

java - 防止 Java 多次加载库

android - 构建工具错误 "Please install the Android build tools version 19.1.0 or higher"

java - 使用西方数字的货币格式

c - 如何在C中使用LAME API?有没有简单的例子?

java - 如何在 opencv for android 中将 ArrayList<Mat> 从 Java 传递到 native 端(NDK)

java - 在 openframeworks 中使用 android UI 修改 C++ 程序中的变量?

android - GCM 发件人 ID/项目编号

android - 如何在选项卡中创建选项卡