畢業(yè)放假回公司,我的電腦打開(kāi)就藍(lán)屏了,后來(lái)就直接換了電腦,從Git上pull代碼后一直連不上服務(wù)器,我一直以為我的代碼沒(méi)有動(dòng)就一定是服務(wù)器端出現(xiàn)問(wèn)題了,折騰了好幾天才最后解決,因?yàn)镚rpc用的人也少百度也搜不到這種問(wèn)題,這件事告訴我開(kāi)發(fā)中千萬(wàn)不要換電腦亂升級(jí)軟件什么的,不然會(huì)要命的,我android端Grpc一直用的是1.0版本的,就理所當(dāng)然的以為用1.0當(dāng)然沒(méi)事了,誰(shuí)知道就是版本的問(wèn)題,換成1.4果然就好了,以下Android Grpc最新的。
關(guān)于Android Grpc的學(xué)習(xí),我推薦一下這篇文章,寫(xiě)的非常細(xì),不過(guò)他用的是1.0的GRPC,我做過(guò)測(cè)試已經(jīng)連不上服務(wù)器了,最好用1.4的試試。
GRPC Android SSL/TLS Demo(Android上帶有SSL/TLS加密的gRPC使用詳解)
http://www.itdecent.cn/p/2873a8349ca0
compile 'io.grpc:grpc-okhttp:1.4.0'
compile 'io.grpc:grpc-protobuf-lite:1.4.0'
compile 'io.grpc:grpc-stub:1.4.0'
07-05 11:42:58.540 19393-19393/lbs.mr.com.test2 E/AndroidRuntime: FATAL EXCEPTION: main
Process: lbs.mr.com.test2, PID: 19393
java.lang.RuntimeException: Unable to start activity ComponentInfo{lbs.mr.com.test2/lbs.mr.com.test2.Main2Activity}: io.grpc.StatusRuntimeException: UNAVAILABLE
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2197)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
at android.app.ActivityThread.access$800(ActivityThread.java:143)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1209)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5120)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:818)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
at dalvik.system.NativeStart.main(Native Method)
Caused by: io.grpc.StatusRuntimeException: UNAVAILABLE
at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:230)
at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:211)
at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:144)
at lbs.passport.PassportServiceGrpc$PassportServiceBlockingStub.register(PassportServiceGrpc.java:235)
at lbs.mr.com.test2.Main2Activity.onCreate(Main2Activity.java:29)
at android.app.Activity.performCreate(Activity.java:5351)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257)
at android.app.ActivityThread.access$800(ActivityThread.java:143)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1209)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5120)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:818)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.io.IOException: PROTOCOL_ERROR invalid settings id: -509
at io.grpc.okhttp.internal.framed.Http2.ioException(Http2.java:589)
at io.grpc.okhttp.internal.framed.Http2.access$200(Http2.java:47)
at io.grpc.okhttp.internal.framed.Http2$Reader.readSettings(Http2.java:304)
at io.grpc.okhttp.internal.framed.Http2$Reader.nextFrame(Http2.java:162)
at io.grpc.okhttp.OkHttpClientTransport$ClientFrameHandler.run(OkHttpClientTransport.java:739)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)