Tell us about your environment
What did you do? Please explain the steps you took before you encountered the problem.
Just exporting a xml file with After Effects and trying to integrate it into an Android application.
What did you expect to happen?
An animating vector drawable
What actually happened? Please include as much _relevant_ detail as possible.
Crash after the following line of code:
AnimatedVectorDrawableCompat animatedVectorDrawable = AnimatedVectorDrawableCompat.create(getContext(), R.drawable
.loading_icon_animated);
Caused by: android.view.InflateException: pathInterpolator requires the controlX1 attribute
at android.support.graphics.drawable.PathInterpolatorCompat.parseInterpolatorFromTypeArray(PathInterpolatorCompat.java:90)
at android.support.graphics.drawable.PathInterpolatorCompat.<init>(PathInterpolatorCompat.java:72)
at android.support.graphics.drawable.PathInterpolatorCompat.<init>(PathInterpolatorCompat.java:65)
at android.support.graphics.drawable.AnimationUtilsCompat.createInterpolatorFromXml(AnimationUtilsCompat.java:140)
at android.support.graphics.drawable.AnimationUtilsCompat.loadInterpolator(AnimationUtilsCompat.java:81)
at android.support.graphics.drawable.AnimatorInflaterCompat.loadAnimator(AnimatorInflaterCompat.java:821)
at android.support.graphics.drawable.AnimatorInflaterCompat.loadObjectAnimator(AnimatorInflaterCompat.java:790)
at android.support.graphics.drawable.AnimatorInflaterCompat.createAnimatorFromXml(AnimatorInflaterCompat.java:443)
at android.support.graphics.drawable.AnimatorInflaterCompat.createAnimatorFromXml(AnimatorInflaterCompat.java:454)
at android.support.graphics.drawable.AnimatorInflaterCompat.createAnimatorFromXml(AnimatorInflaterCompat.java:417)
at android.support.graphics.drawable.AnimatorInflaterCompat.loadAnimator(AnimatorInflaterCompat.java:126)
at android.support.graphics.drawable.AnimatorInflaterCompat.loadAnimator(AnimatorInflaterCompat.java:113)
at android.support.graphics.drawable.AnimatorInflaterCompat.loadAnimator(AnimatorInflaterCompat.java:96)
at android.support.graphics.drawable.AnimatedVectorDrawableCompat.inflate(AnimatedVectorDrawableCompat.java:485)
at android.support.graphics.drawable.AnimatedVectorDrawableCompat.createFromXmlInner(AnimatedVectorDrawableCompat.java:253)
at android.support.graphics.drawable.AnimatedVectorDrawableCompat.create(AnimatedVectorDrawableCompat.java:233)
Please provide a download link to the After Effects file that demonstrates the problem.
File attached
Hi, Can you share the .aep or the exported .xml?
@bodymovin the xml file is attached as txt file as xml file upload is not supported
Can you confirm the Android Gradle Plugin version, support library version and the buildToolsVersion you are using in your app? This sounds like an issue we saw with early versions of aapt2 but should now be fixed.
I am using gradle 2.3.3 and buildToolsVersion 25.0.2
I'm also facing similar issue
Caused by: java.lang.RuntimeException: Unknown interpolator name: pathInterpolator
at android.view.animation.AnimationUtils.createInterpolatorFromXml(AnimationUtils.java:328)
at android.view.animation.AnimationUtils.loadInterpolator(AnimationUtils.java:271)
at android.animation.AnimatorInflater.loadAnimator(AnimatorInflater.java:307)
at android.animation.AnimatorInflater.loadObjectAnimator(AnimatorInflater.java:161)
at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java:117)
at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java:126)
at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java:93)
at android.animation.AnimatorInflater.loadAnimator(AnimatorInflater.java:72)
at android.support.graphics.drawable.AnimatedVectorDrawableCompat.inflate(AnimatedVectorDrawableCompat.java:408)
at android.support.graphics.drawable.AnimatedVectorDrawableCompat.createFromXmlInner(AnimatedVectorDrawableCompat.java:179)
at android.support.graphics.drawable.AnimatedVectorDrawableCompat.create(AnimatedVectorDrawableCompat.java:159)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)聽
at android.app.ActivityThread.access$800(ActivityThread.java:135)聽
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)聽
at android.os.Handler.dispatchMessage(Handler.java:102)聽
at android.os.Looper.loop(Looper.java:136)聽
at android.app.ActivityThread.main(ActivityThread.java:5017)聽
at java.lang.reflect.Method.invokeNative(Native Method)聽
at java.lang.reflect.Method.invoke(Method.java:515)聽
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)聽
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)聽
at dalvik.system.NativeStart.main(Native Method)
@harryio I also have this issue sometimes
Can you try with:
Android Gradle Plugin: 3.0.0-beta1
Build Tools Version: 26.0.1
Support Library: 26.0.1
With that setting I am getting a different error. Anyway, I am working in a big company with more than 20 apps I can't just upgrade to the new gradle plugin nor the support lib. My fallback would be to use Lottie animations, but I actually wanted to avoid that.
Caused by: java.lang.RuntimeException: Unknown animator name: attr
at android.support.graphics.drawable.AnimatorInflaterCompat.createAnimatorFromXml(AnimatorInflaterCompat.java:549)
at android.support.graphics.drawable.AnimatorInflaterCompat.createAnimatorFromXml(AnimatorInflaterCompat.java:538)
at android.support.graphics.drawable.AnimatorInflaterCompat.createAnimatorFromXml(AnimatorInflaterCompat.java:501)
at android.support.graphics.drawable.AnimatorInflaterCompat.loadAnimator(AnimatorInflaterCompat.java:131)
at android.support.graphics.drawable.AnimatorInflaterCompat.loadAnimator(AnimatorInflaterCompat.java:118)
at android.support.graphics.drawable.AnimatorInflaterCompat.loadAnimator(AnimatorInflaterCompat.java:102)
at android.support.graphics.drawable.AnimatedVectorDrawableCompat.inflate(AnimatedVectorDrawableCompat.java:482)
at android.support.graphics.drawable.AnimatedVectorDrawableCompat.createFromXmlInner(AnimatedVectorDrawableCompat.java:250)
at android.support.graphics.drawable.AnimatedVectorDrawableCompat.create(AnimatedVectorDrawableCompat.java:230)
Tried with the above settings and still the same issue
Not sure this is the same issue (or if it's related at all, I'm not a developer) but here is my issue just in case:
I was also having my app crashing on launch, after comparing my xml with others online I saw mine had < group > in some parts that should have had < path >, I found out my issue was because I was trying exporting predefined "shapes" in After Effects instead of raw "paths" (which maybe its obvious but I didn't know any better), I converted my shapes to paths and then the issues were fixed.

Hi @cf351 , indeed parametric shapes are not supported because they don't translate well to AVD. Nevertheless, I've managed to support rectangles and ellipses as long as they are not animated on the latest version.
What version are you using?
Hi @bodymovin, thanks for the info, didn't know those shapes were supported (if not animated).
I am using latest versions of everything (plugin, AE, Android), just now am I realizing that this ticket it's only about "API < 21", I thought it was a similar issue to mine and wanted to share my solution.
Thanks again for responding :)
Same issue here. It seems that the pathInterpolator is not loaded with its compat class, with the removal of the pathInterpolator everything's fine.
@nickbutcher any progress?
Sorry, nothing to report yet. I've filed bugs and the team is working on a fix.
@nickbutcher Narrowed this down a bit. Crash goes away (on my particular test file) if I remove:
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.333,0 0.667,1 1.0,1.0"/>
</aapt:attr>
From:
<objectAnimator
android:duration="667"
android:propertyName="trimPathStart"
android:startOffset="868"
android:valueFrom="0"
android:valueTo="1"
android:valueType="floatType">
<aapt:attr name="android:interpolator">
<pathInterpolator android:pathData="M 0.0,0.0 c0.333,0 0.667,1 1.0,1.0"/>
</aapt:attr>
</objectAnimator>
(Seems like AAPT2 doesn't support <aapt:attr ...> inside <objectAnimator>...</objectAnimator>)
Sample files (one crashes, one doesn't):
https://gist.github.com/petedoyle/409998f898a277b83649d1293403ee77
Not sure if there are tags other than objectAnimator that might also be affected...
Edit: might be fixed in the next build tools? https://issuetracker.google.com/issues/67668749
This is fixed in buildToolsVersion 27.0.1 馃檶
Even if i use AnimatedVectorDrawable in buildToolsVersion 27.0.1, it also go wrong when api < 21.
I think the file should use some property that not available in the low version.
java.lang.NullPointerException
at android.animation.PropertyValuesHolder.setupSetterAndGetter(PropertyValuesHolder.java:505)
at android.animation.ObjectAnimator.initAnimation(ObjectAnimator.java:487)
at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:517)
at android.animation.ValueAnimator.start(ValueAnimator.java:936)
at android.animation.ValueAnimator.start(ValueAnimator.java:946)
at android.animation.ObjectAnimator.start(ObjectAnimator.java:465)
at android.animation.AnimatorSet.start(AnimatorSet.java:563)
at android.animation.AnimatorSet$DependencyListener.startIfReady(AnimatorSet.java:762)
at android.animation.AnimatorSet$DependencyListener.onAnimationStart(AnimatorSet.java:731)
at android.animation.AnimatorSet.start(AnimatorSet.java:593)
at android.animation.AnimatorSet.start(AnimatorSet.java:563)
at android.support.graphics.drawable.AnimatedVectorDrawableCompat.start(AnimatedVectorDrawableCompat.java:705)
@denghewenai as this sounds like an issue with AnimatedVectorDrawableCompat please can you file an issue with repro case at https://issuetracker.google.com/
Most helpful comment
This is fixed in buildToolsVersion 27.0.1 馃檶