Breaking News

Default Placeholder Default Placeholder

はじめに

先日Flutter2.8にアップグレードしました。その時はAndroidの実機を使って挙動確認をしていて何事もなく、Flutterアップグレードがすんなりいってよかった〜ということで一安心していました。

しかしつい先ほどAndroidのエミュレータでアプリを起動すると。。。

E/AndroidRuntime( 2256): FATAL EXCEPTION: grpc-okhttp-0
E/AndroidRuntime( 2256): Process: com.example, PID: 2256
E/AndroidRuntime( 2256): java.lang.AssertionError: Method getAlpnSelectedProtocol not supported for object SSL socket over Socket[address=firestore.googleapis.com/216.58.220.138,port=443,localPort=36560]
E/AndroidRuntime( 2256): 	at io.grpc.okhttp.internal.OptionalMethod.invoke(OptionalMethod.java:114)
E/AndroidRuntime( 2256): 	at io.grpc.okhttp.internal.OptionalMethod.invokeWithoutCheckedException(OptionalMethod.java:135)
E/AndroidRuntime( 2256): 	at io.grpc.okhttp.OkHttpProtocolNegotiator$AndroidNegotiator.getSelectedProtocol(OkHttpProtocolNegotiator.java:183)
E/AndroidRuntime( 2256): 	at io.grpc.okhttp.OkHttpProtocolNegotiator$AndroidNegotiator.negotiate(OkHttpProtocolNegotiator.java:145)
E/AndroidRuntime( 2256): 	at io.grpc.okhttp.OkHttpTlsUpgrader.upgrade(OkHttpTlsUpgrader.java:63)
E/AndroidRuntime( 2256): 	at io.grpc.okhttp.OkHttpClientTransport$4.run(OkHttpClientTransport.java:571)
E/AndroidRuntime( 2256): 	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
E/AndroidRuntime( 2256): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/AndroidRuntime( 2256): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/AndroidRuntime( 2256): 	at java.lang.Thread.run(Thread.java:920)
I/Process ( 2256): Sending signal. PID: 2256 SIG: 9
Lost connection to device.

なんか出てる!!!??

というわけで本記事では FATAL EXCEPTION: grpc-okhttp-0が出たときの対処方法をまとめます。

環境

  • MacOS BigSur 11.4
  • Flutter 2.8
  • Dart 2.15

対処方法

android/app/build.gradledependenciesに以下を追記してください。

dependencies {
    ...
    ...
    implementation "io.grpc:grpc-okhttp:1.32.2"
}

これでいけるはずです。アプリが起動できるかと思います。