mavlink/MAVSDK-Java

Need help build locally (to add Gripper support)

Tpelleterat opened this issue · 0 comments

Hi,

I'm working on an Android application.
With the official libs, everything is okay (io.mavsdk:mavsdk:1.3.1 and io.mavsdk:mavsdk-server:1.3.2). However, I need Gripper support.

I would like to build local libs to add Gripper.
Steps I've done:

  1. Clone the repo
  2. Update the submodule sdk/proto to the main branch
  3. Build the sdk with $ ./gradlew build
  4. Build mavsdk-server with $ ./gradlew build
  5. Transfer files "sdk/mavsdk/build/libs/mavsdk.jar" and "mavsdk_server/build/outputs/aar/mavsdk-server-release.aar" to the Android project libs.

Everything works as before, but Gripper throws an exception:

io.reactivex.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | io.grpc.StatusRuntimeException: UNIMPLEMENTED
	at io.reactivex.internal.observers.EmptyCompletableObserver.onError(EmptyCompletableObserver.java:50)
	at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.onError(CompletableSubscribeOn.java:74)
	at io.reactivex.internal.operators.completable.CompletableCreate$Emitter.tryOnError(CompletableCreate.java:90)
	at io.reactivex.internal.operators.completable.CompletableCreate$Emitter.onError(CompletableCreate.java:76)
	at io.mavsdk.gripper.Gripper$1.onError(Gripper.java:261)
	at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:491)
	at io.grpc.internal.DelayedClientCall$DelayedListener$3.run(DelayedClientCall.java:489)
	at io.grpc.internal.DelayedClientCall$DelayedListener.delayOrExecute(DelayedClientCall.java:453)
	at io.grpc.internal.DelayedClientCall$DelayedListener.onClose(DelayedClientCall.java:486)
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:567)
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:71)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:735)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:716)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
	at java.lang.Thread.run(Thread.java:1012)
Caused by: io.grpc.StatusRuntimeException: UNIMPLEMENTED
	at io.grpc.Status.asRuntimeException(Status.java:539)
	at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:491) 
	at io.grpc.internal.DelayedClientCall$DelayedListener$3.run(DelayedClientCall.java:489) 
	at io.grpc.internal.DelayedClientCall$DelayedListener.delayOrExecute(DelayedClientCall.java:453) 
	at io.grpc.internal.DelayedClientCall$DelayedListener.onClose(DelayedClientCall.java:486) 
	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:567) 
	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:71) 
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:735) 
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:716) 
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) 
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133) 
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) 
	at java.lang.Thread.run(Thread.java:1012) 

Code :

drone?.gripper.grab(1)

Used with android 7.1 (minSdk 24, targetSdk 33)

Edit :I tried to build mavsdk_server by replacing the prebuiltLibs libmavsdk_server.so with released versions from Mavsdk 2.0.1, but encountered the same problem.

Thanks