AllJoynでプロパティを使用するのに苦労しています。私はAllJoynには新しいですが、プログラミングには興味がありません。私はC++書かれたプロバイダを持っていて、そのコールステータスがER_OKに等しい後、私はJavaからAllJoynプロパティを呼び出すと、AnnotationBusExceptionが発生する
status = m_Description->AddProperty("ServerName", "s", 1)
を使用して、私のプロパティを追加します。
は、私は次のようなインタフェースで、私のJavaのプロパティを定義します。
@BusProperty(annotation = BusProperty.ANNOTATE_EMIT_CHANGED_SIGNAL)
String getServerName() throws BusException;
をしかし、私のように呼び出すことによって(アンドロイドStudioを使用してAndroidの)Javaでのプロパティを使用しようとすると:
String str = proxyInterface.getServerName();
私は次の例外を取得しておいてください。私はwronを
04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus W/System.err: org.alljoyn.bus.AnnotationBusException: field public static transient volatile com.android.tools.fd.runtime.IncrementalChange com.wolfecomputerservices.cumulus.ui.Android.Communication.AllJoyn.Objects.ServerData.$change of class com.wolfecomputerservices.cumulus.ui.Android.Communication.AllJoyn.Objects.ServerData does not annotate position 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at org.alljoyn.bus.Signature.structTypes(Signature.java:71) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at org.alljoyn.bus.Signature.classTypeSig(Signature.java:170) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at org.alljoyn.bus.Signature.typeSig(Signature.java:117) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at org.alljoyn.bus.InterfaceDescription.getOutSig(InterfaceDescription.java:511) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at org.alljoyn.bus.InterfaceDescription.addMembers(InterfaceDescription.java:386) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at org.alljoyn.bus.InterfaceDescription.create(InterfaceDescription.java:199) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at org.alljoyn.bus.ProxyBusObject.addInterface(ProxyBusObject.java:115) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at org.alljoyn.bus.ProxyBusObject.getProperty(Native Method) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at org.alljoyn.bus.ProxyBusObject.access$400(ProxyBusObject.java:35) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at org.alljoyn.bus.ProxyBusObject$Handler.invoke(ProxyBusObject.java:274) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at java.lang.reflect.Proxy.invoke(Proxy.java:397) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at $Proxy4.getServerRunning(Unknown Source) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at com.wolfecomputerservices.cumulus.ui.Android.Communication.AllJoyn.Interfaces.ICumulusImpl.IsRunning(ICumulusImpl.java:24) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at com.wolfecomputerservices.cumulus.ui.Android.Communication.AllJoyn.Handlers.BusHandler.processMessage(BusHandler.java:276) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at com.wolfecomputerservices.cumulus.ui.Android.Abstracts.PauseHandler.handleMessage(PauseHandler.java:75) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at android.os.Handler.dispatchMessage(Handler.java:111) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at android.os.Looper.loop(Looper.java:194) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5567) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at java.lang.reflect.Method.invoke(Native Method) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at java.lang.reflect.Method.invoke(Method.java:372) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:955) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:750)
Note: I do have a method that has a return value of ServerData. However, that is not what I'm calling when this error occurs. I sucessfully make that call long before trying to call the method. It is the method call that causes this exception. However, I do have ServerData annotated with @Position(x) for each field number 0-4.
何をしていますg?
アップデート:JavaのコンシューマからのC++プロバイダ
class ServerData {
public:
const char* Id;
const char* Name;
const char* Version;
const char* MachineName;
const char* BaseUrl;
};
から
ServerData:
public class ServerData {
@Position(0)
@Signature("s")
public String Id;
@Position(1)
@Signature("s")
public String Name;
@Position(2)
@Signature("s")
public String Version;
@Position(3)
@Signature("s")
public String MachineName;
@Position(4)
@Signature("s")
public String BaseURL;
}
UPDATE:私はのGradleのバージョンを切り替えるため残念ながら、可能ないないようです。私は現在2.3.1です。 2.1.3に切り替えると、ビルド中に次のエラーが発生します(私はすべての提案を試してみました):
残念ながら、私はgradleのバージョンを切り替えることはできません。私は現在2.3.1です。 2.1.3に切り替えると、ビルド中に次のエラーが発生します。 エラー:org.gradle.api.internal.tasks.DefaultTaskInputs $ TaskInputUnionFileCollectionをorg.gradle.api.internal.file.collections.DefaultConfigurableFileCollectionにキャストできません。 考えられる原因予期しないエラーがあります。
- Gradleの依存関係キャッシュが壊れている可能性があります(ネットワーク接続のタイムアウト後に発生することがあります)。 依存関係を再ダウンロードしてプロジェクトを同期させます(ネットワークが必要)
- Gradleのビルドプロセス。すべてのGradleデーモンを停止すると、この問題が解決される可能性があります。 Gradleビルドプロセスを停止します(再起動が必要です)
- プロジェクトには、プロジェクトの他のプラグインまたはプロジェクトによって要求されたGradleのバージョンと互換性のないサードパーティのプラグインが使用されている可能性があります。
私はあなたが言っていることを聞きます。しかし、私が指摘したように、ServerDataはプロパティの呼び出しとは関係ありません。この構造体は使用されません。実際、ServerDataを使用する呼び出しは、呼び出しが呼び出される前に完全に正常に動作します。 –
インタフェース定義とServerData定義をalljoynバスアノテーションに付けることはできますか? –
Androidのプロパティサンプル(https://cgit.allseenalliance.org/core/alljoyn.git/tree/alljoyn_java/samples/android?h=RB16.04)をご覧ください。 contactsサンプルには、@Positionアノテーションを使用するデータクラスがあります。 –