tl: / dr: gRPC останавливает облачный API на Raspberry Pi.
Я верю в это, потому что Google Firebase работает (не использует gRPC), но GoogleFirestore и Google TextToSpeech останавливаются (оба используют gRPC) и выдают много предупреждений, связанных с NativeLibraryLoader - io_grpc_netty_shaded_netty_tcnative_linux_arm_32
Оба API-интерфейса (Firestore и TextToSpeech), когда я пытаюсь что-то аутентифицировать (в реальном времени, я пытаюсь что-то сделать, в Firestore) будут пытаться выполнить аутентификациюили скачать WAV в TTS) он просто ... останавливается. Нет ошибокТочно такой же код отлично работает на ноутбуке, тот же JRE (OpenJDK 11).
Я вижу эту проблему на
- Raspberry Pi 3 Model B
- Debian Buster (10.1)
- Linux ev3dev 4.19.23-ev3dev-3-beta1-rpi2 # 1 SMP Sun 3 марта 21:13:28 CST 2019 armv7l GNU / Linux
- версия openjdk "11.0.5 "2019-10-15
- Kotlin 1.3
Мое тестирование
- Firebase с использованием API администратора Java:подключается, читает, слушает обновления в реальном времени.
- Firestore с использованием API администратора Java: подключается (!), но бесконечно зависает при чтении коллекции.
- TextToSpeech с использованием API администратора Java: подключается (!), Но зависает на неопределенное время при чтении файла WAV.
Файл журнала с предупреждениями
Обходной путьпопытка:
- Обновление с Java 8 до OpenJDK 11
- вручную, включая io.netty: netty-tcnative-boringssl-static
Причины, по которымэто высокий уровень серьезности:
- Он не просто выдает ошибку «не поддерживается на вашей платформе», он останавливается навсегда. Это заставляет разработчика пытаться отлаживать множество факторов.
- Некоторые продукты Google Cloud используют gRPC, а некоторые нет. Поэтому любитель должен исследовать, что может сломаться.
- rPI очень популярны для создания прототипов IoT и для энтузиастов в целом.