Всякий раз, когда я использую MaterialButton, я получаю следующее исключение в предварительном просмотре xml:
java.lang.IllegalArgumentException: java.lang.ClassCastException
Я обновился до Android Studio 3.4 и до com.google.android.material: материал: 1.1.0-alpha05
Версия 1.0.0 работает, но любая 1.1.x не работает.
Это проблема с IDE или библиотекой?
-
Для справки: полная трассировка стека:
[email protected]
at sun.reflect.GeneratedMethodAccessor893.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
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)
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.animateBasedOnTime(ValueAnimator.java:1339)
at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1471)
at android.animation.ValueAnimator.pulseAnimationFrame(ValueAnimator.java:1490)
at android.animation.AnimatorSet.pulseFrame(AnimatorSet.java:1163)
at android.animation.AnimatorSet.handleAnimationEvents(AnimatorSet.java:1146)
at android.animation.AnimatorSet.doAnimationFrame(AnimatorSet.java:1046)
at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146)
at android.animation.AnimationHandler.access$100(AnimationHandler.java:37)
at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:947)
at android.view.Choreographer.doCallbacks(Choreographer.java:761)
at android.view.Choreographer_Delegate.doFrame(Choreographer_Delegate.java:66)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.renderAndBuildResult(RenderSessionImpl.java:563)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.render(RenderSessionImpl.java:425)
at com.android.layoutlib.bridge.BridgeRenderSession.render(BridgeRenderSession.java:120)
at com.android.ide.common.rendering.api.RenderSession.render(RenderSession.java:151)
at com.android.ide.common.rendering.api.RenderSession.render(RenderSession.java:133)
at com.android.tools.idea.rendering.RenderTask.lambda$null$8(RenderTask.java:755)
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
РЕДАКТИРОВАТЬ Это происходит только тогда, когда стиль кнопки не установлен ИЛИ по умолчанию:
@Стиль/Widget.MaterialComponents.Button
Например, установка стиля без выравнивания работает, поэтому в качестве обходного пути я использую пространство имен инструментов, чтобы показать стиль кнопки без выравнивания.
Отредактируйте 2, родительский объект темы приложения уже правильно установлен как Theme.AppCompat.Light.DarkActionBar. Это проблема IDE, так как она хорошо работает на моем эмуляторе и устройстве. Я также сделал очистку кэша и аннулирование, чистую сборку, перестройку... (стандартные вещи, которые мы делаем, когда сталкиваемся со странными проблемами IDE)
Edit 3 Все еще не повезло с последней версией AS 3.4.1!