材料浮动操作按钮引起错误并在xml中崩溃

7

我迁移到了androidx,我的依赖关系如下:

implementation 'androidx.appcompat:appcompat:1.1.0-alpha05'
implementation 'com.google.android.material:material:1.1.0-alpha06'

我使用了FloatingActionButton

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_margin="15dp"
    app:backgroundTint="@color/colorAccent"
    app:srcCompat="@drawable/ic_add_32dp"/>

但是当我添加FloatingActionButton标签时,XML出现了崩溃(渲染问题)。即使我使用以下代码:

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
   />

然而,此错误仅在XML中发生,不会影响程序的执行,并且对我来说不显示“设计模式”。 “使缓存无效并重新启动”的问题在于它暂时解决了问题,但问题会再次出现。
渲染问题是:
java.lang.IllegalArgumentException: java.lang.ClassCastException@7e11486d  at java.lang.reflect.Method.invoke(Method.java:498)   at android.animation.PropertyValuesHolder_Delegate.callMethod(PropertyValuesHolder_Delegate.java:108)   at android.animation.PropertyValuesHolder_Delegate.nCallFloatMethod(PropertyValuesHolder_Delegate.java:143)   at android.animation.PropertyValuesHolder.nCallFloatMethod(PropertyValuesHolder.java:-1)   at android.animation.PropertyValuesHolder.access$400(PropertyValuesHolder.java:38)   at android.animation.PropertyValuesHolder$FloatPropertyValuesHolder.setAnimatedValue(PropertyValuesHolder.java:1387)   at android.animation.ObjectAnimator.animateValue(ObjectAnimator.java:990)   at android.animation.ValueAnimator.setCurrentFraction(ValueAnimator.java:674)   at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:637)   at android.animation.ValueAnimator.start(ValueAnimator.java:1069)   at android.animation.ValueAnimator.start(ValueAnimator.java:1088)   at android.animation.ObjectAnimator.start(ObjectAnimator.java:852)   at android.animation.ValueAnimator.startWithoutPulsing(ValueAnimator.java:1081)   at android.animation.AnimatorSet.handleAnimationEvents(AnimatorSet.java:1142)   at android.animation.AnimatorSet.startAnimation(AnimatorSet.java:1227)   at android.animation.AnimatorSet.start(AnimatorSet.java:729)   at android.animation.AnimatorSet.start(AnimatorSet.java:684)   at android.animation.StateListAnimator.start(StateListAnimator.java:188)   at android.animation.StateListAnimator.setState(StateListAnimator.java:181)   at android.view.View.drawableStateChanged(View.java:21105)   at android.widget.ImageView.drawableStateChanged(ImageView.java:1294)   at com.google.android.material.floatingactionbutton.FloatingActionButton.drawableStateChanged ... (FloatingActionButton.java:805)   at android.view.View.refreshDrawableState(View.java:21160)   at android.view.View.dispatchAttachedToWindow(View.java:18379)   at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)   at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)   at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)   at android.view.AttachInfo_Accessor.setAttachInfo(AttachInfo_Accessor.java:42)

1
请确保您的App主题是从Theme.MaterialComponent或其子类继承而来。 - karan
很可能@drawable/ic_add_32dp存在问题,请将其删除并进行测试。 - Santanu Sur
我测试了所有的,都不行。 - Farzad Kamali
也许你的AndroidX迁移工作没有做好。 - Mahabub Karim
2
我也遇到了同样的问题,与MaterialComponent主题相关。 - Jon O
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接