android - sirve - tesis sobre youtube pdf
Recurso esperado del animador de tipo (2)
He actualizado mi SDK a la versión más reciente, pero ahora aparece un error de pelusa.
Error: recurso esperado del animador de tipo [ResourceType]
El error se produce en esta línea:
AnimatorInflater.loadAnimator(context, R.anim.right_slide_in)
El recurso referenciado /res/anim/right_slide_in.xml
tiene este aspecto:
<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:valueTo="0"
android:valueFrom="1.0"
android:propertyName="xFraction"
android:valueType="floatType"
android:duration="450" />
Siempre funcionó antes. ¿Alguien podría explicar por qué estoy recibiendo ese error?
¡El error se produce porque almacena sus recursos de Animator
en el directorio incorrecto! Funcionó antes porque AnimatorInflater
puede cargar el xml independientemente de la carpeta en la que esté guardado.
-
R.anim.*
recursos de la carpetares/anim/
son para ver animaciones. -
R.animator.*
recursos de la carpeta/res/animator/
son paraAnimators
.
Entonces, para corregir el error, simplemente mueva sus recursos de Animator
de /res/anim/
a /res/animator/
.
Esto solía hacer ninguna diferencia en absoluto hasta que las anotaciones de tipo de recurso se agregaron a la biblioteca de soporte. Además de esas anotaciones, hubo muchos nuevos controles de pelusa, entre otros, el que te hizo tropezar.
En el futuro, si obtiene un error como este, puede ver la anotación para descubrir qué está haciendo mal. Por ejemplo, la implementación de loadAnimator()
de AnimatorInflater
tiene este aspecto:
public static Animator loadAnimator(Context context, @AnimatorRes int id)
throws NotFoundException {
return loadAnimator(context.getResources(), context.getTheme(), id);
}
La anotación @AnimatorRes
en el parámetro id indica que solo los recursos de Animator
deben pasarse aquí. Si miras la documentación de @AnimatorRes
se lee así:
Indica que se espera que un parámetro entero, campo o valor de retorno del método sea una referencia de recurso animador (por ejemplo, android.R.animator.fade_in).
Si la descripción no explica el error ya, entonces el ejemplo normalmente lo hace;)
Agregue este código a su build.gradle (Módulo: aplicación):
android {
lintOptions {
disable "ResourceType"
}
}