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

  • Arrêtez Android Studio à l'aide de la bibliothèque d'assistance
  • Comment puis-je savoir quelle version de la version Android de la version v4 de la console que j'utilise?
  • Qu'est-ce qu'une bibliothèque de support Android?
  • La barre d'action s'affiche de manière incorrecte lors du retour du mode immersif
  • CardView va au-dessus de FrameLayout, mais déclaré en premier
  • Le fragment erroné dans ViewPager reçoit l'appel OnContextItemSelected
  •  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.