2012-05-31 39 views
1

我創建了一個java應用程序,可以在我的c#應用程序和Facebook之間進行交談。 這個輔助類允許我獲得朋友列表併發布在Facebook牆上。Monodroid Java Binding

我最近有一些問題試圖綁定我的一個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 []字節的問題。 (_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不正確的綁定到一個字節[]?

+0

我不認爲你需要每個參數的完全限定名。但簽名看起來很好。 「(Landroid/app/Activity; S; [B; S; Lcom/Hitcents/PictureThis/BaseRequestListener;)V」 – Cheesebaron

+0

我很確定monodroid綁定java,如果不需要全限定名已經內置。即整數是作爲我內置,但對於一個字符串,你需要完全合格的Ljava/lang/String – Bryan

回答

1

我能回答我自己的問題。通過將字節數組作爲Ljava/lang/Object傳遞,我可以將它轉換爲java端的byte []。

1

A byte[]不是[Ljava/lang/Byte;,它是[B。 A [Ljava/lang/Byte;將是java.lang.Byte[]java.lang.Byte實例的陣列)。