Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SetDataAndType方法_Java_Android_C++_Java Native Interface - Fatal编程技术网

Java SetDataAndType方法

Java SetDataAndType方法,java,android,c++,java-native-interface,Java,Android,C++,Java Native Interface,如setDataAndType中所述,可以通过以下方式调用方法: auto setDataAndTypeFunctionId = env->GetMethodID(intentClassId, "setDataAndType", "(Landroid/net/Uri;Ljava/lang/String;)V"); jstring jmime = env->NewStringUTF("video/*"); env->CallVoidMethod(context, setDataA

如setDataAndType中所述,可以通过以下方式调用方法:

auto setDataAndTypeFunctionId = env->GetMethodID(intentClassId, "setDataAndType", "(Landroid/net/Uri;Ljava/lang/String;)V");
jstring jmime = env->NewStringUTF("video/*");
env->CallVoidMethod(context, setDataAndTypeFunctionId, intentObject, UriObject, jmime);
但当我运行我的应用程序时,输出上会显示此错误:

java.lang.NoSuchMethodError: no method with name='setDataAndType' signature='(Landroid/net/Uri;Ljava/lang/String;)V' in class Landroid/content/Intent;

问题在于返回类型,它不是void。该方法返回类型为
Intent
的对象

使用以下签名:

env->GetMethodID(intentClassId, "setDataAndType", "(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/Intent;");

此外,您应该使用CallObjectMethod而不是CallVoidMethod,尽管这并不重要,因为您没有使用返回值。

您在文章中只显示了一段代码。我建议将两部分放在一起:什么被记录为有效调用,以及您尝试运行的实际代码。顺致敬意,