Je suis confronté à l'utilisation de propriétés dans AllJoyn. Je suis nouveau à AllJoyn mais pas à la programmation. J'ai un fournisseur écrit C++ et j'ajoute mes propriétés en utilisantL'appel d'une propriété AllJoyn à partir de Java provoque une exception AnnotationBus
status = m_Description->AddProperty("ServerName", "s", 1)
Après que l'état d'appel est égal à ER_OK.
je définis mon Java propriété dans l'interface comme suit:
@BusProperty(annotation = BusProperty.ANNOTATE_EMIT_CHANGED_SIGNAL)
String getServerName() throws BusException;
Cependant, lorsque je tente d'utiliser la propriété dans Java (Android Android Studio) en faisant l'appel comme:
String str = proxyInterface.getServerName();
Je continue à recevoir l'exception suivante:
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.
Qu'est-ce que je fais wron g?
Mise à jour:
ServerData de C++ fournisseur
class ServerData {
public:
const char* Id;
const char* Name;
const char* Version;
const char* MachineName;
const char* BaseUrl;
};
De Java Consumer:
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;
}
MISE À JOUR: Malheureusement, cela ne me semble pas possible de basculer version de gradle. Je suis actuellement sur 2.3.1; passer à 2.1.3 provoque l'erreur suivante lors de la construction (j'ai essayé toutes les suggestions listées):
Malheureusement, cela ne me semble pas possible de changer de version de gradle. Je suis actuellement sur 2.3.1; le passage à 2.1.3 provoque l'erreur suivante lors de la construction: Erreur: org.gradle.api.internal.tasks.DefaultTaskInputs $ TaskInputUnionFileCollection ne peut pas être jeté à org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection Les causes possibles erreur inattendue:
- Le cache des dépendances de Gradle est peut-être corrompu (parfois après un délai de connexion réseau). Re-télécharger les dépendances et synchroniser le projet (nécessite un réseau)
- L'état d'un processus de compilation Gradle (démon) est peut-être corrompu . L'arrêt de tous les démons Gradle peut résoudre ce problème. Stop Gradle build processes (nécessite un redémarrage)
- Votre projet utilise peut-être un plugin tiers qui n'est pas compatible avec les autres plugins du projet ou la version de Gradle demandée par le projet.
Je comprends ce que vous dites. Cependant, comme je l'ai noté, ServerData n'a rien à voir avec l'appel à la propriété. Il n'utilise pas cette structure et en fait, l'appel qui utilise ServerData fonctionne parfaitement bien avant l'appel de la propriété. –
Pouvez-vous fournir la définition d'interface et la définition ServerData avec les annotations de bus alljoyn? –
Vous pouvez consulter l'exemple de propriétés Android (https://cgit.allseenalliance.org/core/alljoyn.git/tree/alljoyn_java/samples/android?h=RB16.04). Alors que l'échantillon de contacts a une classe de données qui utilise l'annotation @Position. –