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

  • Empêchez le collapsingToolbarLayout s'écroule s'il n'est pas nécessaire
  • Erreur Android - Causé par: java.lang.NoClassDefFoundError: android.support.v4.util.SparseArrayCompat
  • Que signifient ces avertissements Logcat Android?
  • Fragment ou Fragment de soutien?
  • Erreur de construction Android Studio - Plusieurs fichiers dex définissent Landroid / support / v4 /
  • Android supportant lib v4 ou v13
  •  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.