はじめに
先日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.gradle
のdependencies
に以下を追記してください。
dependencies {
...
...
implementation "io.grpc:grpc-okhttp:1.32.2"
}
これでいけるはずです。アプリが起動できるかと思います。