Java gRPC客户端在连接到C#服务器时出错

Java gRPC客户端在连接到C#服务器时出错,java,c#,android,grpc,Java,C#,Android,Grpc,我正在尝试制作一个安卓应用程序,连接到C#gRPC服务器。我是gRPC的新手,我正在努力学习。我在Visual Studio 19中创建了一个gRPC服务,我正在尝试在我的android应用程序中使用该服务中的greet proto文件。我写了一些代码来测试连接,但是我有一个eror。服务器是在visual studio中生成的默认gRPC服务。我的应用程序中的代码是这样的(不是最好的代码,但一旦它起作用,我将以适当的方式编写): 我收到的错误是: D/AndroidRuntime: Shutt

我正在尝试制作一个安卓应用程序,连接到C#gRPC服务器。我是gRPC的新手,我正在努力学习。我在Visual Studio 19中创建了一个gRPC服务,我正在尝试在我的android应用程序中使用该服务中的greet proto文件。我写了一些代码来测试连接,但是我有一个eror。服务器是在visual studio中生成的默认gRPC服务。我的应用程序中的代码是这样的(不是最好的代码,但一旦它起作用,我将以适当的方式编写):

我收到的错误是:

D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.client, PID: 8877
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.client/com.example.client.MainScreen}: io.grpc.StatusRuntimeException: UNAVAILABLE: End of stream or IOException
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:223)
    at android.app.ActivityThread.main(ActivityThread.java:7656)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
 Caused by: io.grpc.StatusRuntimeException: UNAVAILABLE: End of stream or IOException
    at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:262)
    at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:243)
    at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:156)
    at greet.GreeterGrpc$GreeterBlockingStub.sayHello(GreeterGrpc.java:176)
    at com.example.client.MainScreen.onCreate(MainScreen.java:33)
    at android.app.Activity.performCreate(Activity.java:8000)
    at android.app.Activity.performCreate(Activity.java:7984)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
我设法用chrome浏览器从本地机器上用https://locahost:5001 并从我的模拟器使用。每次我尝试将浏览器连接到服务器时,控制台都会打印一些日志,因此我认为服务器不是问题所在

我发现了这篇文章:我认为这与我的实际问题有关,但我对TSL和gRPC都是新手。我唯一能想到的是,当我的客户机尝试使用纯文本连接时,服务器使用TSL,但我不知道如何检查这一点

我怎样才能找出问题所在

编辑:这是我的原型文件:

syntax = "proto3";
package greet;

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply);
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings.
message HelloReply {
  string message = 1;
}
syntax = "proto3";
package greet;

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply);
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings.
message HelloReply {
  string message = 1;
}