youtubers tesis sobre sirve resumida que para investigaciones investigacion historia caracteristicas android android-animation android-lint

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 carpeta res/anim/ son para ver animaciones.
  • R.animator.* recursos de la carpeta /res/animator/ son para Animators .

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" } }