【问题标题】:Layout editor no longer works : Rendering Failed with a known bug布局编辑器不再工作:渲染失败并出现已知错误
【发布时间】:2016-12-29 21:46:25
【问题描述】:

自上次更新 a​​ndroid studio (2.3 Beta 1) 以来。查看布局时出现错误。这些设计只是灰屏,没有任何显示。我已经尝试了几种提出的解决方案,但都没有奏效。我已经试过了:

  • 使用 gradle 选项重建和重新同步项目
  • 使缓存无效
  • 更改 Android 渲染版本
  • 检查更新并安装最新版本

Rendering failed with a known bug. Please try a rebuild.

The following classes could not be instantiated:
- android.support.v7.widget.AppCompatButton (Open Class, Show Exception, Clear Cache)
- android.support.v7.widget.AppCompatEditText (Open Class, Show Exception, Clear Cache)
- android.support.v7.widget.AppCompatTextView (Open Class, Show Exception, Clear Cache)



 Tip: Use View.isInEditMode() in your custom views to skip code or show 
 sample data when shown in the IDE.  If this is an unexpected error you can
 also try to build the project, then manually refresh the layout.  



`Exception Details java.lang.NoSuchFieldError: AppCompatTextHelper
at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:58)
at android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:40)
at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:72)
at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:62)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:441)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:240)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:195)
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadClass(LayoutlibCallbackImpl.java:193)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:333)
at android.view.BridgeInflater.onCreateView(BridgeInflater.java:152)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:222)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:368)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:567)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:549)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:863)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:549)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$1(RenderTask.java:680)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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)

你知道这可能来自哪里吗?

编辑:该错误已报告给 Google https://code.google.com/p/android/issues/detail?can=1&q=230569&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened&id=230569

【问题讨论】:

  • 我在 AS 2.3 Beta 2 上遇到了同样的问题。通过恢复到 2.2.3 解决了这个问题
  • @PiotrZawadzki 问题在 AS 2.3 RC 1 上得到解决

标签: android android-layout android-studio


【解决方案1】:

我认为您缺少此依赖项

编译“com.android.support:appcompat-v7:22.1.0”

只需添加它来构建 gradle

【讨论】:

  • compile 'com.android.support:appcompat-v7:25.1.0'(抱歉,我无法编辑我的评论)
  • 请检查您的 sdk 25 是否安装正确。
  • 我已检查,它已正确安装
  • 把 apptheme 改成 appcompact 会有帮助
  • 我的 apptheme 已经在 appcompact ... style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"
【解决方案2】:

Google 更新一次后,它又可以正常工作了

【讨论】:

    猜你喜欢
    • 2019-10-05
    • 2013-10-25
    • 2017-05-08
    • 1970-01-01
    • 2013-10-20
    • 2014-10-22
    • 1970-01-01
    • 2015-12-23
    • 2017-06-10
    相关资源
    最近更新 更多