SetDataAndType method

SetDataAndType method

本文关键字:method SetDataAndType      更新时间:2023-10-16

如Android开发者页面中所述,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。setDataAndType方法返回一个类型为Intent的对象。

使用以下签名:

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

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