android - Calling an AllJoyn property from Java causes a AnnotationBusException -


i'm struggling using properties in alljoyn. i'm new alljoyn not programming. have provider written c++ , add properties using

status = m_description->addproperty("servername", "s", 1) 

after call status equals er_ok.

i define java property in interface following:

 @busproperty(annotation = busproperty.annotate_emit_changed_signal)  string getservername() throws busexception; 

however, when try use property on in java (android using android studio) making call as:

string str = proxyinterface.getservername(); 

i keep getting following exception:

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 not annotate position 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ org.alljoyn.bus.signature.structtypes(signature.java:71) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ org.alljoyn.bus.signature.classtypesig(signature.java:170) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ org.alljoyn.bus.signature.typesig(signature.java:117) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ org.alljoyn.bus.interfacedescription.getoutsig(interfacedescription.java:511) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ org.alljoyn.bus.interfacedescription.addmembers(interfacedescription.java:386) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ org.alljoyn.bus.interfacedescription.create(interfacedescription.java:199) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ org.alljoyn.bus.proxybusobject.addinterface(proxybusobject.java:115) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ org.alljoyn.bus.proxybusobject.getproperty(native method) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ org.alljoyn.bus.proxybusobject.access$400(proxybusobject.java:35) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ org.alljoyn.bus.proxybusobject$handler.invoke(proxybusobject.java:274) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ java.lang.reflect.proxy.invoke(proxy.java:397) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ $proxy4.getserverrunning(unknown source) 04-07 10:11:45.592 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ 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: @ 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: @ 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: @ android.os.handler.dispatchmessage(handler.java:111) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ android.os.looper.loop(looper.java:194) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ android.app.activitythread.main(activitythread.java:5567) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ java.lang.reflect.method.invoke(native method) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ java.lang.reflect.method.invoke(method.java:372) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:955) 04-07 10:11:45.593 26005-26005/com.wolfecomputerservices.cumulus w/system.err: @ com.android.internal.os.zygoteinit.main(zygoteinit.java:750)

note: have method has return value of serverdata. however, not i'm calling when error occurs. sucessfully make call long before trying call method. method call causes exception. however, have serverdata annotated @position(x) each field number 0-4.

what doing wrong?

update:

serverdata c++ provider

class serverdata {     public:         const char* id;         const char* name;         const char* version;         const char* machinename;         const char* baseurl;     }; 

from 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; } 

update: unfortunately, doesn't seem possible me switch version of gradle. i'm on 2.3.1; switching 2.1.3 causes following error during build (i've tried suggestions listed):

unfortunately, doesn't seem possible me switch version of gradle. i'm on 2.3.1; switching 2.1.3 causes following error during build: error:org.gradle.api.internal.tasks.defaulttaskinputs$taskinputunionfilecollection cannot cast org.gradle.api.internal.file.collections.defaultconfigurablefilecollection possible causes unexpected error include:

  • gradle's dependency cache may corrupt (this occurs after network connection timeout.) re-download dependencies , sync project (requires network)
  • the state of gradle build process (daemon) may corrupt. stopping gradle daemons may solve problem. stop gradle build processes (requires restart)
  • your project may using third-party plugin not compatible other plugins in project or version of gradle requested project.
in case of corrupt gradle processes, can try closing ide , killing java processes.

make sure serverdata fields in question public , there no typo in of @position(n) annotations have specified before each public field.


update:

i have seen annotation error message when building in android studio gradle 2.2.3. however, when went using gradle 2.1.3 annotation error went away.

check top level build.gradle file. update classpath dependency be...

dependencies { classpath 'com.android.tools.build:gradle:2.1.3' }


update 2:

another workaround, if need build in android studio gradle > 2.1.3, disable android studio's "instant run" feature. instant run feature automatically adding 2 public static fields classes (i.e. adding $change field , serialversionuid field).

the alljoyn java-binding's processing of position annotations (which done via reflection) not account these 2 fields being added compiler. handled better alljoyn in upcoming 16.10a maintenance release).

to disable "instant run", following within android studio...

open settings or preferences dialog.
navigate build, execution, deployment > instant run.
uncheck "enable instant run hot swap/resource changes on deploy" checkbox.


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -