#android #kotlin #wear-os
Вопрос:
Я пытаюсь понять, как получить данные датчиков от служб здравоохранения в ОС Wear.
Я пытаюсь запустить образцы (Образец пассивных данных) из официального руководства по эмулятору для Wear OS API 30 (он доступен в бета-версии Android Studio Arctic Fox), но я получаю эту ошибку:
2021-07-02 16:55:54.041 7172-7200/com.example.passivedata E/AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-1
Process: com.example.passivedata, PID: 7172
java.lang.NullPointerException: Attempt to invoke interface method 'boolean com.google.common.util.concurrent.ListenableFuture.cancel(boolean)' on a null object reference
at android.os.Parcel.createExceptionOrNull(Parcel.java:2392)
at android.os.Parcel.createException(Parcel.java:2370)
at android.os.Parcel.readException(Parcel.java:2353)
at android.os.Parcel.readException(Parcel.java:2295)
at androidx.health.services.client.impl.IPassiveMonitoringApiService$Stub$Proxy.registerDataCallback(IPassiveMonitoringApiService.java:318)
at androidx.health.services.client.impl.ServiceBackedPassiveMonitoringClient$registerDataCallbackInternal$serviceOperation$1.execute(ServiceBackedPassiveMonitoringClient.kt:122)
at androidx.health.services.client.impl.ipc.Client$3.execute(Client.java:222)
at androidx.health.services.client.impl.ipc.internal.ServiceConnection.execute(ServiceConnection.java:243)
at androidx.health.services.client.impl.ipc.internal.ServiceConnection.enqueue(ServiceConnection.java:200)
at androidx.health.services.client.impl.ipc.internal.ConnectionManager.handleMessage(ConnectionManager.java:123)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:223)
at android.os.HandlerThread.run(HandlerThread.java:67)
Кто-нибудь сталкивался с подобной проблемой?
Комментарии:
1. Можете ли вы решить эту проблему?
2. В репозитории уже есть сообщение об этой проблеме .
3. @KelvinSchoofs да, это я. Но никто не комментирует(
4. Я пробовал это со своей стороны, но у меня нет проблем при запуске «Пассивного образца данных» в API 30
Ответ №1:
измените значение enableHermes с false на true в файле android/app/build.gradle
project.ext.react = [
enableHermes: true
]
добавьте эти строки в android/app/src/main/java/com/yourProjectName/MainApplication.java
import com.facebook.react.bridge.JSIModulePackage;
import com.swmansion.reanimated.ReanimatedJSIModulePackage;
@Override
protected JSIModulePackage getJSIModulePackage() {
return new ReanimatedJSIModulePackage();
}
//if this is not exist then also add this
@Override
protected String getJSMainModuleName() {
return "index";
}
и перестроить проект
Ответ №2:
Вам просто нужно обновить этот пакет
реагировать-родной-реанимированный
npm i react-native-reanimated@2.2.4
после установки этой версии пакета просто перезагрузите симулятор.