【发布时间】:2012-05-31 22:33:47
【问题描述】:
我创建了一个 java 应用程序,作为我的 c# 应用程序和与 facebook 交谈之间的过渡。 这个帮助类允许我获取好友列表并在 facebook 墙上发帖。
我最近在尝试将我的一个 java 函数绑定到 monodroid 时遇到了一些问题。
我使用的java函数如下:
public void PostPicture(Activity mainActivity, String opponent, byte[] bytes, String picdescription, RequestListener listener)
{
Bundle params = new Bundle();
params.putString("name", picdescription);
params.putByteArray("source", bytes);
if(opponent != null)
{
params.putString("tags", opponent);
}
_asyncFacebook.request("me/photos", params, "POST", listener, null);
}
我遇到的问题是尝试绑定 byte[] 字节。
JNIEnv.GetMethodID(_class_ref, "PostPicture", "(Landroid/app/Activity;Ljava/lang/String;[Ljava/lang/Byte;Ljava/lang/String;Lcom/Hitcents/PictureThis/BaseRequestListener;)V ");
其中 _class_ref 是我对包含“PostPicture”的 java 类的完全限定名。
[Ljava/lang/Byte 不是与字节 [] 的正确绑定吗?
【问题讨论】:
-
我认为您不需要每个参数的完全限定名称。但是签名对我来说看起来不错。 "(Landroid/app/Activity;S;[B;S;Lcom/Hitcents/PictureThis/BaseRequestListener;)V"
-
我很确定 monodroid 绑定 java 如果它还没有内置,你确实需要完全限定的名称。即整数是内置的,但对于字符串你需要完全限定的 Ljava/lang/String
标签: java android binding xamarin.android