【问题标题】:Android studio not rendering layout previewAndroid Studio 不渲染布局预览
【发布时间】:2014-12-23 01:31:41
【问题描述】:

我一直在使用 Android Studio 0.8.6 开发应用程序,但在使用 API21 时遇到布局预览问题。我收到以下错误:

渲染问题: 无法实例化以下类: - android.support.v7.widget.Toolbar

我有最新的 SDK 构建工具 (21.0.2) 以及完整的 API21 下载和安装。我的 targetSDKVersion 在 gradle 文件中设置为 21。 如果我将预览更改为使用 API20 呈现,一切似乎都很好。下面提供了异常详细信息。

谢谢!

异常详细信息 java.lang.ClassNotFoundException: android.support.v4.content.ContextCompatApi21 在 com.intellij.util.lang.UrlClassLoader.findClass(UrlClassLoader.java:148) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:319) 在 android.support.v7.internal.widget.TintManager.getDrawable(TintManager.java:133) 在 android.support.v7.internal.widget.TintTypedArray.getDrawable(TintTypedArray.java:62) 在 android.support.v7.widget.Toolbar.(Toolbar.java:248) 上 android.support.v7.widget.Toolbar.(Toolbar.java:190) 位于 java.lang.reflect.Constructor.newInstance(Constructor.java:408) 在 android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:806) 在 android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:782) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:504) android.view.LayoutInflater.inflate(LayoutInflater.java:385)

【问题讨论】:

    标签: android android-studio android-5.0-lollipop


    【解决方案1】:

    这个问题在 Android Studio 1.2 中又回到了我的身边。

    这就是我所做和工作的。

    1. 清理项目
    2. 重建项目
    3. 同步 Gradle
    4. 按更新布局预览按钮

    【讨论】:

    • 我在创建工具栏时遇到了同样的问题。我听从了你的指示。应用了您提到的所有步骤。并且工作完美!谢谢!
    • 不要忘记第 4 步,这是消除此问题的关键。
    • 不需要清理。 stackoverflow.com/a/24083753/860311。 Android Studio 1.5 问题未修复。
    • 在 Android Studio 1.5 上为我工作。非常感谢
    • 抱歉,更新布局预览的按钮在哪里?找了好久没找到。
    【解决方案2】:

    尝试在“预览”窗格中取消选择“自动选择最佳”,并在查看布局 XML 时选择较旧的 API。它位于菜单栏中,您可以在其中选择您希望预览使用的设备和主题,一直位于右侧。

    【讨论】:

    • 正如我所说,这部分解决了它。我可以选择 API20 并看到它正确渲染,但仍然无法使用 API21,这是我的目标 :(
    • 我做到了,真正为我解决的是上面的答案,更新 Android Studio :) 感谢您的帮助!
    • 我认为这与问题无关。
    【解决方案3】:

    最新版本的 Android Studio 是 0.8.14,它修复了 API21 的一些问题。请注意,根据Android Studio 0.8.12 announcement(在“无补丁”下):

    我们发现并修复了补丁机制中的几个重大错误。其中一个错误意味着升级到新版本虽然会导致安装功能相同,但也会导致二进制内容略有不同(例如,.jar 文件中的某些时间戳会有所不同)。这意味着实际的二进制签名将不匹配,这会破坏例如应用程序签名检查。

    我们现在已经找到并修复了该错误,但由于给定的先前版本有许多不同的二进制变体,我们无法创建单个补丁来更新到新版本。因此,对于这个版本,我们需要完整下载 IDE。从这个版本开始,我们应该能够准确地安装更新,同时保留应用程序签名。

    所以你需要手动安装latest build

    【讨论】:

    • 我在 0.8.12 版本上进行了无补丁更新(从头开始),现在我在 0.8.14 上(执行了 2 次升级)。尝试在我的应用程序中使用新的工具栏小部件时,我仍然看到上述异常。我必须从头开始安装 0.8.14 版本吗?如果是,0.8.12 升级不是最后一个需要无补丁安装的吗?
    • 没关系...与 gradle 重新同步(再次)以某种方式使错误消失
    • 这个问题不知何故回到了 Android Studio 1.2。在这里查看我的答案,看看我是如何解决的。
    • 我在 android studio 2.2 中遇到了同样的问题这是我所做的,但什么也没做 -Clean Project -Rebuild project -Sync Gradle 唯一对我有用的是重新启动 android studio(关闭和重新打开)
    【解决方案4】:

    将您的样式父级更改为Theme.AppCompat.Light.NoActionBar,而不是styles.xml 中的Theme.AppCompat.Light.DarkActionBar......它对我有用。

    【讨论】:

      【解决方案5】:

      这是known issue,见下文。

      虚假渲染异常

      具体的渲染错误信息是: 找不到以下类:

      android.support.v7.internal.app.WindowDecorActionBar
      

      尽管有错误消息,但布局预览是正确的,并且可以安全地忽略该消息。该问题已在 2.0 预览版中修复。 更多详情请见bug 192102。 (问题链接不再有效)。

      【讨论】:

        【解决方案6】:

        我在 android studio 2.2 中遇到了同样的问题

        这是我做的,什么都没有

        -清理项目

        -重建项目

        -同步 Gradle

        唯一对我有用的是重新启动 android studio(关闭并重新打开)

        【讨论】:

          【解决方案7】:
          1. 清理项目
          2. 重建项目
          3. 同步 Gradle
          4. 按更新布局预览按钮

          “更新布局预览”按钮位于安卓手机预览上方,它是带有蓝色圆形箭头的那个,就在放大镜缩放按钮的右边。

          注意:在最后一步按下更新布局按钮之前,此解决方案似乎什么都不做,然后它就可以工作了。这为我解决了这个问题。我正在使用 Android Studio v2.1.2。

          干杯!

          【讨论】:

            【解决方案8】:
            • 清理项目
            • 重建项目
            • 同步 Gradle
            • 按更新布局预览 按钮

            或者

            在您的 XML 文件中按右键并标记为 XML。

            应该可以的。

            【讨论】:

            • 这个问题之前已经回答过了。如果您想为其他人记录此内容,请发布self answering question
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-09-20
            • 2015-08-27
            • 2020-07-24
            • 2016-04-02
            • 1970-01-01
            相关资源
            最近更新 更多