Intereting Posts
Как отключить все функции Android ProGuard, кроме обфускации? Закусочная не перемещается FAB, который находится внутри фрагмента Анимация при изменении ориентации View.setPadding принимает только в px, есть ли все-таки setPadding в dp? Ошибка установки пакета Android-SDK, хотя Eclipse & SDK-менеджер запускается в качестве администратора на Vista Android – загружает значения из базы данных sqlite в arraylist React Native ListView TextInput блокируется от оптимизации оптимизации производительности Прокрутите до мягкой клавиатуры Java.lang.IllegalAccessError: класс ref в предварительно проверенном классе разрешен для неожиданной реализации при запуске тестового проекта? Android, назовите кадры предварительного просмотра камеры ПРЕДУПРЕЖДЕНИЕ. В обоих списках зависимостей были указаны поддержка android-support-v4 и android-support-v13 Получите общее количество «областей / зон», в которых я сейчас живу, исходя из текущего местоположения Как отменить регистрацию слушателя от датчика после остановки обслуживания? Эмулятор Android не запускается, показывая «недопустимый параметр командной строки», Android SurfaceView вызывает мерцание экрана

Хореограф NullPointerException

Я некоторое время работаю над существующей кодовой базой и просматриваю нашу службу аварийного журнала. Я заметил исключение, которое случается довольно часто, я не могу воспроизвести эту проблему, и у меня нет контекста для сценария, чтобы попробовать И копаться, так как это довольно большой проект, становится все труднее узнать причину этого исключения.

Я искал в Интернете похожие проблемы и не нашел никакой полезной информации. Если кто-то знаком с этой проблемой, ваша помощь будет принята с благодарностью.

Stacktrace выглядит следующим образом:

java.lang.NullPointerException at android.animation.PropertyValuesHolder.setupSetterAndGetter(PropertyValuesHolder.java:505) at android.animation.ObjectAnimator.initAnimation(ObjectAnimator.java:487) at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:517) at android.animation.ValueAnimator.start(ValueAnimator.java:936) at android.animation.ValueAnimator.start(ValueAnimator.java:946) at android.animation.ObjectAnimator.start(ObjectAnimator.java:465) at android.animation.AnimatorSet$1.onAnimationEnd(AnimatorSet.java:579) at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1056) at android.animation.ValueAnimator.access$400(ValueAnimator.java:50) at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:644) at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:660) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) at android.view.Choreographer.doCallbacks(Choreographer.java:574) at android.view.Choreographer.doFrame(Choreographer.java:543) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5105) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) at dalvik.system.NativeStart.main(NativeStart.java) 

Приветствия.

Solutions Collecting From Web of "Хореограф NullPointerException"

Проблема оказалась анимацией, вызванной Handler с использованием postDelayed() , что в конечном итоге привело к попытке анимировать ссылку на нулевой View , поскольку она не была очищена должным образом в соответствии с событиями жизненного цикла хоста.

Возможно, у вас тэгрит равен нулю, распечатайте журнал с помощью аниматораSet.getTarget (), чтобы увидеть

Я также получаю эту трассировку стека, когда использую: ObjectAnimator animator = ObjectAnimator.ofFloat (это «шкала», 1); …. animator.start ()

Запустить в android 4.0.X, но это нормально для более высокой версии, вы также можете сослаться на фиксацию этого парня, хотя я не понимаю, как это исправить, но это определенная причина.

Теперь я прошел через это исключение и выяснил, что получаю экземпляр представления с анимацией из getActivity().findViewById . Хотя я был в фрагменте, мне пришлось создать его экземпляр из корневого окна, завышенного, содержащего представление.

Я в основном переместил представление из макета Activity в Fragment, но не изменил код. Итак, rootview.findViewById решил мою проблему.

Мой стек:

 java.lang.NullPointerException at android.animation.PropertyValuesHolder.setupSetterAndGetter(PropertyValuesHolder.java:505) at android.animation.ObjectAnimator.initAnimation(ObjectAnimator.java:392) at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:495) at android.animation.ValueAnimator.start(ValueAnimator.java:913) at android.animation.ValueAnimator.start(ValueAnimator.java:923) at android.animation.ObjectAnimator.start(ObjectAnimator.java:370) at eu.davidea.passwordcloud.ui.ItemDetailFragment$3.onClick(ItemDetailFragment.java:162) at android.view.View.performClick(View.java:4084) at android.view.View$PerformClick.run(View.java:16966) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) 

Поверьте мне, я нашел решение этой проблемы сбоя на устройствах 4.0.x.

Проблема заключается в том, что вы используете ObjectAnimator без значения «start» и «end», устройства api on 4.0.x не могут найти значение «start» для реализации.

Например, это приведет к сбою на устройствах 4.0.x

 int endRadiusValue = 10; ObjectAnimator .ofFloat(roundedGradientDrawable, "cornerRadius", endRadiusValue) .setDuration(200) .start(); 

И этот код отлично работает на всех устройствах уровня api

 int startRadiusValue = 0; int endRadiusValue = 10; ObjectAnimator .ofFloat(roundedGradientDrawable, "cornerRadius", startRadiusValue, endRadiusValue) .setDuration(200) .start(); 

Введите описание изображения здесь

Я решаю проблему, добавив анимацию в AnimSet так: