代码之家  ›  专栏  ›  技术社区  ›  Dmitry Zaytsev

Android上的Netty gRPC服务器-通道未注册到事件循环

  •  0
  • Dmitry Zaytsev  · 技术社区  · 4 年前

    当在Android上运行Netty gRPC服务器时,我得到以下异常

    java.lang.IllegalStateException: channel not registered to an event loop
    

    我使用的依赖项:

    implementation 'io.grpc:grpc-kotlin-stub:1.2.0'
    implementation 'io.grpc:grpc-netty-shaded:1.40.1'
    implementation 'io.grpc:grpc-stub:1.40.1'
    implementation 'io.grpc:grpc-protobuf-lite:1.40.1'
    implementation 'io.grpc:grpc-okhttp:1.40.1'
    implementation 'com.google.protobuf:protobuf-kotlin-lite:3.18.1'
    

    像这样初始化gRPC服务器:

    NettyServerBuilder.forPort(7001)
        .addService(Service())
        .build()
        .start()
    
    1 回复  |  直到 4 年前
        1
  •  0
  •   Dmitry Zaytsev    4 年前

    事实证明,异常消息具有误导性,我的 AndroidManifest 文件

    <uses-permission android:name="android.permission.INTERNET" />
    
        2
  •  0
  •   BloodEko    4 年前

    您需要将这些行添加到 AndroidManifest.xml 以授予网络权限。

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    

    此外,可能需要从手机/模拟器中卸载app/.apk文件 以更新权限缓存。

    推荐文章