Android 布局预览编辑器 - 布局不可见:java.lang.IllegalArgumentException:对象不是声明类的实例
Posted
技术标签:
【中文标题】Android 布局预览编辑器 - 布局不可见:java.lang.IllegalArgumentException:对象不是声明类的实例【英文标题】:Android Layout Preview Editor - Layout not visible: java.lang.IllegalArgumentException: object is not an instance of declaring class 【发布时间】:2019-10-09 07:21:02 【问题描述】:我的 android Studio 布局编辑器未按预期工作。在我对布局进行更改后,预览总是消失并变成完全白屏或冻结(我无法选择任何元素并且我对 xml 文件所做的更改不可见)。这发生在任何布局文件中。我在 使 chaches 无效并重新启动 后再次工作,但在我进行另一次更改后,我又遇到了同样的问题。执行干净的构建也无济于事。
布局编辑器显示以下异常:
java.lang.IllegalArgumentException: object is not an instance of declaring class
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
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.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)
但是我无法理解发生了什么。我什至不确定这个错误是否是我的问题的原因。也许你可以帮忙。
注意:我使用的是 Theme.MaterialComponents.Light.NoActionBar 主题
【问题讨论】:
这是完整的错误吗? 我想,这是我点击“详细信息”时布局编辑器向我显示的所有内容 你知道你的代码的哪一部分触发了这个错误吗? 事实证明,添加 @Yannick 几个小时后我发现这不是 Android Studio 问题,而是 Gradle 插件问题,我已将 gradle 插件和我的 gradle 恢复到以前的版本,现在一切正常! 【参考方案1】:将你的依赖更新到 alpha09 并且它是固定的:
implementation "com.google.android.material:material:1.1.0-alpha09" // Material Components
【讨论】:
尝试了alpha09
更改,但在多次重启后都无法正常工作...以上是关于Android 布局预览编辑器 - 布局不可见:java.lang.IllegalArgumentException:对象不是声明类的实例的主要内容,如果未能解决你的问题,请参考以下文章