Android Studio无法渲染布局预览

24

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

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

我的SDK Build工具已经更新到最新版(21.0.2),并且已经下载并安装了完整的API21。我的targetSDKVersion也设置为gradle文件中的21。 如果我将预览更改为使用API20进行渲染,则一切都正常。异常详细信息如下。

谢谢!

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

9个回答

44

这个问题在Android Studio 1.2版本中再次出现。

以下是我采取的方法,并成功解决了该问题:

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

不需要清理。https://dev59.com/DmAf5IYBdhLWcg3w_G2r#24083753。Android Studio 1.5问题未解决。 - Vito Valov

9

在预览窗格中取消选择"自动选择最佳",并在查看布局XML时选择较旧的API。此选项位于菜单栏的最右侧,您可以在其中选择要使用的设备和主题。


这部分解决了它,正如我所说的。我可以选择API20并正确地呈现它,但仍然无法使用API21,这是我的目标:( - Tupaschoal
1
我做了,实际上解决我的问题的是上面的答案,更新了Android Studio :) 感谢您的帮助! - Tupaschoal
我认为这与问题无关。 - Sotti

8
最新版本的Android Studio是0.8.14,它修复了与API21相关的一些问题。请注意,根据Android Studio 0.8.12发布公告(在“无补丁”下):
引用: 我们发现并修复了修补机制中的几个重大错误。其中一个错误意味着升级到新版本,虽然会产生功能上相同的安装,但也会导致略微不同的二进制内容(例如,一些.jar文件中的时间戳会有所不同)。这意味着实际的二进制签名将不匹配,这会破坏应用程序签名检查等。
我们现在已经找到并修复了该错误,但由于给定先前版本的许多不同二进制变体,我们不能创建单个补丁以更新到新版本。因此,对于此版本,我们将需要完全下载IDE。从这个版本开始,我们应该能够准确地安装更新,同时保留应用程序签名。
因此,您需要手动安装最新版本

5

将你的样式父类更改为Theme.AppCompat.Light.NoActionBar,而不是Theme.AppCompat.Light.DarkActionBar,在styles.xml中……对我有用。


2

这是一个已知问题,请参考以下信息。

虚假渲染异常

具体的渲染错误信息如下: 无法找到以下类:

android.support.v7.internal.app.WindowDecorActionBar

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


0
  • 清理项目
  • 重新构建项目
  • 同步Gradle
  • 按下更新布局预览按钮

或者

在您的XML文件中,右键单击并标记为XML。

那应该就可以了。


这个问题已经被回答过了。如果您希望为其他人记录此内容,请发布一个自问自答的问题 - ashkhn

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

"更新布局预览"按钮位于Android手机预览上方,是带有圆形蓝色箭头的按钮,就在放大镜缩放按钮旁边。

注意:此解决方案似乎无效,直到按下最后一步的更新布局按钮,然后它才起作用。这为我解决了问题。我正在使用Android Studio v2.1.2。

干杯!


0

我在Android Studio 2.2中遇到了同样的问题。

我尝试了以下操作,但都没有解决:

- 清理项目

- 重新构建项目

- 同步Gradle

唯一有效的方法是重启Android Studio(关闭并重新打开)。


0

你能检查一下主题文件夹吗? 可能你没有在主题中初始化某些内容。


您的回答可以通过提供更多支持信息而得到改善。请[编辑]以添加进一步的细节,例如引用或文档,以便其他人可以确认您的答案正确无误。您可以在帮助中心找到有关如何编写好答案的更多信息。 - Community
这并没有回答问题。一旦你拥有足够的声望,你将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - Sergei Kozelko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接