Java.lang.RuntimeException: Nom de l'animation inconnue: objectAnimator

Je reçois cette erreur lors de l'utilisation

getActivity().getSupportFragmentManager() .beginTransaction() .setCustomAnimations( R.animator.card_flip_right_in, R.animator.card_flip_right_out, R.animator.card_flip_left_in, R.animator.card_flip_left_out) .replace(R.id.content_fragment, new DaysSinceBirthSettingFragment()) .addToBackStack(null) .commit(); 

Mais quand je change pour

  • Problèmes de rendu dans Android Studio v 1.1 / 1.2
  • Impossible de trouver android.support.design.widget.Snackbar dans la bibliothèque de conception de support
  • Fragment de transition standard non animée
  • Erreur Android Studio utilisant VectorDrawable (la nouvelle bibliothèque Support 23.2.0)
  • Comment réparer "Support-v13: 19.1.0 dépend des bibliothèques mais n'est pas une bibliothèque elle-même"?
  • Le message "Champ peut être converti en une variable locale" apparaissant lors de la configuration de la couleur de la barre d'action
  •  getActivity().getFragmentManager() .beginTransaction() .setCustomAnimations( R.animator.card_flip_right_in, R.animator.card_flip_right_out, R.animator.card_flip_left_in, R.animator.card_flip_left_out) .replace(R.id.content_fragment, new DaysSinceBirthSettingFragment()) .addToBackStack(null) .commit(); 

    Cela fonctionne parfaitement. Mais je dois supporter une version plus ancienne, alors je dois utiliser support-v4, dont getSupportFragmentManager() provient.

    J'ai lu un article disant que res/animator n'est pas pris en charge par support-v4, alors j'ai également essayé de déplacer mes fichiers XML d'animation dans le dossier res/anim et de le référencer par R.anim.card_flip_right_in

    Mais cela ne fonctionnait toujours pas, n'importe qui peut me dire ce que je peux faire?

    2 Solutions collect form web for “Java.lang.RuntimeException: Nom de l'animation inconnue: objectAnimator”

    Le gestionnaire de fragments de support ne prend pas en charge les animateurs (uniquement les animations). Le message d'exception indique que vous avez un mauvais format d'animation dans votre ressource xml, probablement parce que vous avez déplacé l'animateur sur ce xml qui est incorrect (car ils ont une notation différente). Vous devez l'écrire correctement: http://developer.android.com/guide/topics/graphics/view-animation.html

    Si vous utilisez un fragment de support, ajoutez ci-dessous des fichiers xml en res

    Voici le contenu du fichier anim / fragment_slide_left_enter.xml .

     <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromXDelta="100%p" android:interpolator="@android:interpolator/decelerate_quint" android:toXDelta="0%p" /> <alpha android:duration="@android:integer/config_mediumAnimTime" android:fromAlpha="0.0" android:interpolator="@android:interpolator/decelerate_quint" android:toAlpha="1.0" /> </set> 

    Ce sera le contenu d' anim / fragment_slide_left_exit.xml

     <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromXDelta="0%p" android:interpolator="@android:interpolator/decelerate_quint" android:toXDelta="-100%p" /> <alpha android:duration="@android:integer/config_mediumAnimTime" android:fromAlpha="1.0" android:interpolator="@android:interpolator/decelerate_quint" android:toAlpha="0.0" /> </set> 

    Le code suivant sera le contenu du fichier anim / fragment_slide_right_enter.xml

     <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromXDelta="-100%p" android:interpolator="@android:interpolator/decelerate_quint" android:toXDelta="0%p" /> <alpha android:duration="@android:integer/config_mediumAnimTime" android:fromAlpha="0.0" android:interpolator="@android:interpolator/decelerate_quint" android:toAlpha="1.0" /> </set> 

    Le code suivant sera le contenu du fichier anim / fragment_slide_right_exit.xml

     <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromXDelta="0%p" android:interpolator="@android:interpolator/decelerate_quint" android:toXDelta="100%p" /> <alpha android:duration="@android:integer/config_mediumAnimTime" android:fromAlpha="1.0" android:interpolator="@android:interpolator/decelerate_quint" android:toAlpha="0.0" /> </set> 

    Enfin, ajoutez cette ligne dans votre code de transition de fragment

     ft.setCustomAnimations(R.anim.fragment_slide_left_enter, R.anim.fragment_slide_left_exit, R.anim.fragment_slide_right_enter, R.anim.fragment_slide_right_exit) 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.