Monodroid Java Binding

时间:2012-05-31 22:33:48

标签: java android binding xamarin.android

我已经创建了一个java应用程序,用于我的c#app和与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不正确绑定到byte []?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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