Libgdx IOS app with RoboVM crash because of okhttp

87 Views Asked by At

I am trying to use Grpc in my libgdx app. Grpc uses okhttp to make network calls. Its working perfectly fine in android, but when I am trying to port my libgdx app to ios using Robovm compiler, I am getting following crash:-

io.grpc.StatusRuntimeException: UNAVAILABLE
at io.grpc.StatusRuntimeException.<init>(StatusRuntimeException.java:58)
at io.grpc.StatusRuntimeException.<init>(StatusRuntimeException.java:50)
at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:259)
at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:243)
at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:156)

Caused by: java.lang.RuntimeException: We can not do TLS handshake on this Android version, please install the Google Play Services Dynamic Security Provider to use TLS
at io.grpc.okhttp.OkHttpProtocolNegotiator$AndroidNegotiator.configureTlsExtensions(OkHttpProtocolNegotiator.java:302)
at io.grpc.okhttp.OkHttpProtocolNegotiator.negotiate(OkHttpProtocolNegotiator.java:96)
at io.grpc.okhttp.OkHttpProtocolNegotiator$AndroidNegotiator.negotiate(OkHttpProtocolNegotiator.java:218)
at io.grpc.okhttp.OkHttpTlsUpgrader.upgrade(OkHttpTlsUpgrader.java:63)
at io.grpc.okhttp.OkHttpClientTransport$4.run(OkHttpClientTransport.java:574)

Code-block:-

    public AuthenticateUserResponse authenticateUser(AuthenticateUserRequest request) {
      return io.grpc.stub.ClientCalls.blockingUnaryCall(
          getChannel(), getAuthenticateUserMethod(), getCallOptions(), request);
    }

Gradle dependancies for Robovm & okhttp:-

roboVMVersion = '2.3.16'
gdxVersion = '1.10.0'
grpcVersion = '1.45.0'

api "com.mobidevelop.robovm:robovm-rt:$roboVMVersion"
api "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion"
api "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion"
implementation "io.grpc:grpc-okhttp:$grpcVersion"

Can someone help?

0

There are 0 best solutions below