2016-07-25 29 views
1

由於記錄在Android Developers page setDataAndType方法可以以這種方式被稱爲: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; 
+0

你在帖子中只顯示了一段代碼。我建議分兩部分:記錄爲有效調用的內容以及您嘗試運行的實際代碼。最好的祝福。 – YakovL

回答

1

的問題是返回類型,這不是無效的。 setDataAndType方法返回類型爲Intent的對象。因爲你不使用的返回值

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

此外,你應該使用CallObjectMethod代替CallVoidMethod,雖然它並不真正的問題:

使用下面的簽名。

相關問題