【问题标题】:Exception raised during rendering: Unable to locate mode 0渲染期间引发异常:无法定位模式 0
【发布时间】:2016-10-20 18:30:47
【问题描述】:

在将BuildTools 更新到版本 25.0.0 之后。

compileSdkVersion 25
buildToolsVersion "25"

我对 android 布局预览有疑问。现在它显示错误:

渲染期间引发异常:无法定位模式 0

我尝试清理和重建项目,但它不起作用。 更新前一切正常。

我知道我可以回到以前的BuildTools 版本,但我想知道为什么它在25.0.0 版本上不起作用?


好像是RecyclerView的问题

java.lang.IllegalStateException: Unable to locate mode 0
at android.view.DisplayInfo.findMode(DisplayInfo.java:458)
at android.view.DisplayInfo.getMode(DisplayInfo.java:445)
at android.view.Display.getRefreshRate(Display.java:648)
at android.support.v7.widget.RecyclerView.onAttachedToWindow(RecyclerView.java:2392)
at android.view.View.dispatchAttachedToWindow(View.java:15392)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2953)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)
at android.view.AttachInfo_Accessor.setAttachInfo(AttachInfo_Accessor.java:42)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:333)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:389)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:548)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:533)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:966)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:533)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$53(RenderTask.java:659)
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)

【问题讨论】:

  • 看起来像 25.0.0 的错误。我已经为它打开了一个问题:code.google.com/p/android/issues/…
  • 我在 compileSdkVersion 24 / buildToolsVersion "24.0.2" 遇到了同样的问题 - 但是我让 Android Studio 昨天进行了更新(各种事情,基本上是它要求更新的内容),我相信之后就坏了。
  • @HenriquedeSousa en.wikipedia.org/wiki/Andy_Rubin 离开时出现的问题#Google

标签: android android-studio


【解决方案1】:

这个issue已经解决,更新支持库到

compile 'com.android.support:recyclerview-v7:25.0.1'
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.android.support:design:25.0.1'

【讨论】:

    【解决方案2】:

    这是 25 版的一个恼人的错误.. 临时解决方案是降级您的项目,

     compile 'com.android.support:appcompat-v7:24.2.1'
     compile 'com.android.support:design:24.2.1'
     compile 'com.android.support:recyclerview-v7:24.2.1'
    

    【讨论】:

      【解决方案3】:

      另一个临时解决方案是将<android.support.v7.widget.RecyclerView 替换为<RecyclerView,这样您就可以看到渲染的视图。编译的时候改回<android.support.v7.widget.RecyclerView

      【讨论】:

        【解决方案4】:

        Android 支持库提供向后兼容的实用程序 职能。应用程序可以使用这些实用功能来提供 适合各种 Android 系统的用户体验 版本。

        这是一个 bug 问题,应该在以后修复Release of the support-design library

        您应该降级您的临时解决方案版本。

        compile 'com.android.support:appcompat-v7:25.0.1'
        compile 'com.android.support:design:v7:25.0.1' 
        compile 'com.android.support:recyclerview-v7:25.0.1' 
        

        【讨论】:

          【解决方案5】:

          要查看预览,我使用了这个技巧..... 在布局 XML 中为 recyclerView 添加app:layoutManager="0"

          但它会在运行时抛出 InflateException。所以在运行应用程序之前REMOVE从 XML 布局文件中删除这个属性!

          【讨论】:

            【解决方案6】:

            作为临时解决方案,您可以创建回收器视图的子类并仅覆盖 onAttachedToWindow,如下所示。然后在你的 XML 布局中使用这个类

            @Override
            protected void onAttachedToWindow() {
                if (!isInEditMode()) {
                    super.onAttachedToWindow();
                }
            }
            

            更新:从支持库 25.0.1 开始,修复已包含在库中并且问题不再存在

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-05-25
              • 2015-01-08
              • 1970-01-01
              • 2016-10-09
              • 2018-12-25
              • 1970-01-01
              相关资源
              最近更新 更多