1

我创建了一个 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 不是对字节 [] 的正确绑定吗?

4

2 回答 2

1

Abyte[]不是[Ljava/lang/Byte;, 是[B。A[Ljava/lang/Byte;将是一个java.lang.Byte[]java.lang.Byte实例数组)。

于 2012-06-15T17:24:37.993 回答
1

我能够回答我自己的问题。通过将字节数组作为 Ljava/lang/Object 传递,然后我可以将其转换为 java 端的 byte[]。

于 2012-06-01T13:36:18.363 回答