2015-08-08 4 views
4

Я отправляю строку после преобразования в массив байтов, используя alljoyn, эта строка содержит изображение (после преобразования в String с использованием Base64). она работает нормально, но в случае некоторых изображений он дает следующее сообщение об ошибкеотправка данных с помощью alljoyn

08-08 18:55:21.158 20724-21095/co.coinflipsrl.infomage E/ALLJOYN﹕ 20.237 ****** ERROR ALLJOYN external   ...oyn_core/src/MsgArg.cc:790 | 0x900d 
08-08 18:55:21.159 20724-21095/co.coinflipsrl.infomage E/ALLJOYN_JAVA﹕ 20.238 ****** ERROR ALLJOYN_JAVA external  .../jni/alljoyn_java.cc:11480 | 0x0001 
08-08 18:55:21.161 20724-21095/co.coinflipsrl.infomage E/SimpleClient﹕ SimpleInterface.Ping(): org.alljoyn.bus.MarshalBusException: cannot marshal class [B into 'ay' 
org.alljoyn.bus.MarshalBusException: cannot marshal class [B into 'ay' 
     at org.alljoyn.bus.MsgArg.marshal(MsgArg.java:534) 
     at org.alljoyn.bus.MsgArg.marshal(MsgArg.java:556) 
     at org.alljoyn.bus.ProxyBusObject.methodCall(Native Method) 
     at org.alljoyn.bus.ProxyBusObject.access$300(ProxyBusObject.java:35) 
     at org.alljoyn.bus.ProxyBusObject$Handler.invoke(ProxyBusObject.java:264) 
     at java.lang.reflect.Proxy.invoke(Proxy.java:397) 
     at $Proxy2.Ping(Unknown Source) 
     at co.coinflipsrl.infomage.sharing.alljoynshare.ClientFragment$BusHandler.handleMessage(ClientFragment.java:292) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.os.HandlerThread.run(HandlerThread.java:61) 
Caused by: org.alljoyn.bus.BusException: ER_BUS_BAD_VALUE 
     at org.alljoyn.bus.MsgArg.set(Native Method) 
     at org.alljoyn.bus.MsgArg.marshal(MsgArg.java:464) 


отправки кода является:

sendUiMessage(MESSAGE_PING, msg.obj); 
         byte[] sentObj = (byte[]) msg.obj; 
         Object reply = mSimpleInterface.Ping((byte[]) msg.obj); 
         byte[] receivedObj = (byte[]) reply; 
         if (Arrays.equals(sentObj, receivedObj)) { 
          sendUiMessage(MESSAGE_PING_REPLY, true); 
         } else { 
          sendUiMessage(MESSAGE_PING_REPLY, false); 
         } 

получающий код:

public byte[] Ping(byte[] inStr) { 

     sendUiMessage(MESSAGE_PING, inStr); 

     //Simply echo the ping message. 
     sendUiMessage(MESSAGE_PING_REPLY, inStr); 
     return inStr; 
    } 

    /* Helper function to send a message to the UI thread. */ 
    private void sendUiMessage(int what, Object obj) { 
     mHandler.sendMessage(mHandler.obtainMessage(what, obj)); 
    } 
+0

У вас есть проблема? Я столкнулся с той же проблемой –

ответ

1

Я думаю, что ваши данные равны нулю. null не может быть отправлен, хотя alljoyn

Object reply = mSimpleInterface.Ping((byte[]) msg.obj); 
Смежные вопросы