tl:/ dr:gRPC使树莓派上的云api停滞。
我被认为是因为Google Firebase可以工作(不使用gRPC),但是Google Firestore和Google TextToSpeech却停滞了(都使用gRPC),并且引发了很多涉及NativeLibraryLoader的警告-io_grpc_netty_shaded_netty_tcnative_linux_arm_32
这两个API(Firestore和TextToSpeech)都将进行身份验证,但是当我尝试做真实的事情时(在Firestore中列出文档,或在TTS中下载WAV),它只是...暂停。没有错误。完全相同的代码可以在笔记本电脑,相同的JRE(OpenJDK 11)上正常运行。
我在一个
上看到了这个问题
- Raspberry Pi 3 Model B
- Debian Buster(10.1)
- Linux ev3dev 4.19.23-ev3dev-3-beta1-rpi2#1 SMP Sun Mar 3 21:13:28 CST 2019 armv7l GNU / Linux
- openjdk版本“ 11.0.5” 2019-10-15
- 科特林1.3
我的测试
- Firebase使用Java Admin API:连接,读取和监听实时更新。
- Firestore使用Java Admin API:连接(!),但是在读取集合时无限期挂起。
- TextToSpeech使用Java Admin API:连接(!),但在读取WAV文件时无限期挂起。
Log file demonstrating the warnings
尝试解决方法:
- 从Java 8升级到OpenJDK 11
- 手动包含io.netty:netty-tcnative-boringssl-static
原因为何如此严重:
- 它不仅会因“平台不支持”而出错,而且会永远停止。这使开发人员可以尝试调试许多因素。
- 有些Google Cloud产品使用gRPC,有些则没有。因此,业余爱好者必须对可能会破坏的地方进行研究。
rPI对于物联网原型设计以及一般爱好者来说非常受欢迎。