兩個返回值的接口:當我在AllJoyn Framework上設計了一個帶有多個返回值的接口時,這個調用拋出了一個異常。我不知道爲什麼
@BusInterface(name = "com.cykj.alljoyn.servicetest.MutipleRVInterface")
public interface MutipleRVInterface {
//多返回值
public class Values {
@Position(0)
public int startTime;
@Position(1)
public int endTime;
}
@BusMethod(replySignature = "ii")
public Values getTime() throws BusException;
}
一個類實現的接口和BusObject並在AllJoyn服務:
class ServiceTest implements MutipleRVInterface, BusObject {
@Override
public Values getTime() throws BusException {
Values t = new Values();
t.startTime = 11;
t.endTime = 22;
return t;
}
}
客戶端使用服務對象:
try {
MutipleRVInterface.Values time = mutipleRVInterface.getTime();
logResult(time.startTime + "-" + time.endTime);
} catch (BusException e) {
LogResult(e.getMessage());
Log.e(TAG, e.getMessage());
e.printStackTrace();
}
當我調用MutipleRVInterface的方法時,會引發異常。
02-20 14:00:17.209 20695-20954/com.cykj.alljoyn.clienttest W/System.err: org.alljoyn.bus.ErrorReplyBusException: org.alljoyn.Bus.ErStatus
02-20 14:00:17.209 20695-20954/com.cykj.alljoyn.clienttest W/System.err: at org.alljoyn.bus.ProxyBusObject.methodCall(Native Method)
02-20 14:00:17.210 20695-20954/com.cykj.alljoyn.clienttest W/System.err: at org.alljoyn.bus.ProxyBusObject.access$300(ProxyBusObject.java:35)
02-20 14:00:17.210 20695-20954/com.cykj.alljoyn.clienttest W/System.err: at org.alljoyn.bus.ProxyBusObject$Handler.invoke(ProxyBusObject.java:264)
02-20 14:00:17.210 20695-20954/com.cykj.alljoyn.clienttest W/System.err: at $Proxy1.getTime(Native Method)
02-20 14:00:17.210 20695-20954/com.cykj.alljoyn.clienttest W/System.err: at com.cykj.alljoyn.clienttest.BusMethodTActivity$BusHandler.handleMessage(BusMethodTActivity.java:584)
02-20 14:00:17.210 20695-20954/com.cykj.alljoyn.clienttest W/System.err: at android.os.Handler.dispatchMessage(Handler.java:110)
02-20 14:00:17.211 20695-20954/com.cykj.alljoyn.clienttest W/System.err: at android.os.Looper.loop(Looper.java:193)
02-20 14:00:17.211 20695-20954/com.cykj.alljoyn.clienttest W/System.err: at android.os.HandlerThread.run(HandlerThread.java:61)
我該如何解決問題?代碼中哪裏出錯?
ps:這是一個使用AllJoyn框架的Android項目。而且我英語不是很好,這個問題可能不太清楚。試着去理解。
這是沒有用的。當我設置replySignature =「r」時,當registerBusObject時返回狀態爲「BAD_ANNOTATION」時出錯。 –
@ Wing.L我編輯了簽名。您還可以檢查./alljoyn_java/test/org/alljoyn/bus/AddressBookInterface.java類以進一步使用。 – Fatih