Я разрабатываю часы для Android Wear
с использованием WatchFace API
(удлинение CanvasWatchFaceService
).Android Wear Watchface и WakeLock
Я использовал код от here, чтобы создать тикер, который запускает код каждую секунду.
У меня возникла следующая проблема. Время от времени служба аварийно завершает это исключение. Я не могу понять, откуда оно взялось, если у вас есть какие-либо выводы, я добавлю дополнительный код.
01-06 11:22:00.247 12965-12965/com.my.package E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.my.package, PID: 12965
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.PowerManager$WakeLock.acquire()' on a null object reference
at android.support.wearable.watchface.WatchFaceService$Engine.onCommand(WatchFaceService.java:201)
at android.service.wallpaper.WallpaperService$Engine.doCommand(WallpaperService.java:977)
at android.service.wallpaper.WallpaperService$IWallpaperEngineWrapper.executeMessage(WallpaperService.java:1191)
at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:37)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
После авиакатастрофы циферблат перестает работать и сделать его снова начать я должен выбрать другой циферблат, а затем повторно мой, так что в общей сложности шоу пробки!
Вы вызываете метод 'gets()' в 'WatchFaceService'? –
Не могли бы вы высказать свой код? Где-то вы вызывали метод 'приобретать()' объекта WakeLock, который не инициализирован. На сайте, на который вы ссылаетесь, такого не происходит. – Bobby
Ни в моем коде, я также никогда не использую объект WakeLock. Я использую ObjectAnimator, может ли это быть причиной? –