Я пытался использовать Nearby Connections, но диалоговое окно «Сервисы Google Play» постоянно вылетает. Logcat показывает трассировку стека следующим образом:
04-08 20:01:32.309 8904-11589/? E/AndroidRuntime: FATAL EXCEPTION: highpool[3]
Process: com.google.android.gms.nearby.connection, PID: 8904
java.lang.NullPointerException: Attempt to read from field 'java.lang.Object pu.a' on a null object reference
at vsb.e(:com.google.android.gms:244)
at vsr.run(:com.google.android.gms:344)
at lmq.run(:com.google.android.gms:450)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at lra.run(:com.google.android.gms:17)
at java.lang.Thread.run(Thread.java:818)
Где конкретные случайные буквы могут меняться.
После дальнейшего расследования кажется, что это происходит, когда устройство пытается обнаружить рекламные устройства, и указанный им тайм-аут заканчивается.
Я пошел, чтобы сообщить о проблеме, и обнаружил, что у кого-то уже было:
Похоже, что очень немногие приложения используют Nearby Connections; Я не знаю ни одного. Официальная документация не очень хороша. Черт возьми, Nearby.Connections.startAdvertising()
все еще нужен параметр AppMetadata
, который Google устарел.
Официальный пример кода, https://github.com/googlesamples/android-nearby, устаревшее и нефункциональное.
Итак, мой вопрос: как я могу обойти эти проблемы? Есть ли где-нибудь современный рабочий пример Nearby Connections? Или сам API Nearby Connections просто не используется и полностью сломан?