由于OKHTTP

发布于 2025-01-21 09:27:37 字数 1836 浏览 5 评论 0原文

我正在尝试在我的libgdx应用中使用GRPC。 GRPC使用OKHTTP进行网络调用。 它在Android中的工作正常,但是当我尝试使用Robovm编译器将LibGDX应用程序移植到iOS时,我将遵循crash 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);
    }

robovm&amp&amp; 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"

有人可以帮忙吗?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文