Android Studio v1.1/1.2中的渲染问题

76
当我添加android.support.v7.widget.Toolbar或其他android.support.v7.widget.*时,渲染问题就出现了。
但是 Support Library 已经更新到最新版本。 我已经正确地在依赖项中进行了编译。 我可以在MainActivity.java中导入它们。
问题出在哪里?

1
你选择了哪个SDK版本进行渲染? - EpicPandaForce
Android Sdk Toold v24.1.2。一切都是最新的。问题是:它无法在布局android.support.v7.widget.Toolbar中呈现。 - Zhambulable
1
以下类找不到:android.support.v7.widget.toolbar - Zhambulable
你说的渲染问题是指什么?是指在运行应用程序时还是在通过IDE的“预览”查看布局时出现的问题? - Jared Burrows
11个回答

200

更新: 显然,他们在最终版的Android Studio 1.3中已经修复了这个错误(根据用户在问题跟踪器中报告此问题得到解决:https://issuetracker.google.com/issues/37043358)。

这是自 Android Studio 1.1 版本以来的已知 bug,在 AS 版本 1.2 和 1.3 beta 中仍然存在。将预览的 API 级别从 22 切换到 21 可以解决大部分人的问题。在等待修复期间,你也可以尝试这个方法。

Android Studio 布局预览 - 切换 API 至 21

更新:这已经被报道为 Android Studio 的已知问题(http://tools.android.com/knownissues#TOC-Can-t-Render-Layouts-in-Android-Studio-1.2)。


1
也会发生在Eclipse中。 - villamejia
@villamejia 这个解决方法也适用于 Eclipse 吗? - david.schreiber
1
@Zhambulable 看看这个答案... 我认为应该将其标记为正确的(它很有道理) - SoliQuiD
1
我在使用Android Studio 1.2时遇到了完全相同的问题,将API 22切换到API 21解决了我的问题。 - DaveB
1
不,这个问题在Android Studio 1.4中仍然存在。有解决方案吗? - Scott Chu
显示剩余4条评论

96

我不知道这是否有帮助,但我创建了一个测试项目(直接从向导创建,没有自定义代码),并遇到了这个错误。尝试修改项目结构并查找缺失的类没有帮助。

构建失败,出现以下错误:

***渲染问题

找不到以下类android.support.v7.internal.widget.ActionBarOverlayLayout***

显然这不是最终解决方案,但在设计视图中将主题从"项目主题"更改为其他任何内容可以使其构建。


不是最终解决方案,但是是一个好主意 :) 并且有效,但我怎么能正确修复这个错误?有人知道吗? - user3402040
2
我希望我能够准确地告诉你它是什么,但这个错误在Android Studio 1.2中仍然存在。使用空白活动创建新项目会生成与上述相同的错误。当你开始实际创建布局时,它可能会自行解决,但我认为更改主题似乎是最好的方法。其他人可能认为更改构建API是正确的解决方案,但那不是我喜欢的解决方案。 - Zeus56
我遇到了类似的问题,但是当我移除了已弃用的ActionBarActivity并改用AppCompatActivity时,一切都可以正常工作,而不需要进行任何其他更改。页面提供了有关v7 appcompat库更改的信息。 - Neeraj
我是新手在使用Android Studio。在已经创建项目后,如何更改项目主题? - DaveTheMinion

62

适用于我的可能解决方案:

1 -> 在主题名称的开头添加单词 Base.,使其变为"Base.Theme.AppCompat.Light.DarkActionBar"

即,在 res/values/styles.xml 中更改 AppTheme 的父级以解决此问题。替换如下代码:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>

或者

2- > 在预览窗格中将API级别从22降级到21,如@david.schreiber所建议的。


1
这个对我也解决了问题。 - pigiuz
2
这应该是被选中的答案。 - Mightian

29

我在图形预览中更改了AppTheme为Base.Theme.AppCompat,结果它对我消失了。 它适用于19和22 API :) !祝大家好运!

查看我的操作
点击查看更大的图片


虽然这个链接可能回答了问题,但最好在这里包含答案的基本部分并提供链接以供参考。仅有链接的答案如果链接页面发生变化可能会失效。 - lshettyl
2
@LShetty:如果i.stack.imgur.com崩溃了,我们都会陷入麻烦之中。 - Michael Myers
但是,如果您有自己的应用程序主题(它本身具有“Base.Theme.AppCompat...”作为父级),那么您不想预览布局在您的主题下的外观吗? - user1987392
我在找到这个之前,已经盯着错误屏幕看了几个月了。谢谢! - 1mike12

8

我将我的应用程序主题从 "Theme.AppCompat.Light.DarkActionBar" 更改为 "Base.Theme.AppCompat.Light.DarkActionBar"


2

我刚在Android Studio 1.2.1.0中遇到了这个问题,选择了API 22(Android 5.1.1),没有像其他人建议的更改主题或API。

当我通过常规更新检查更新到最新版本的Android Studio时,现在它可以正常工作。 在新版本的Android Studio 1.2.1.1中,这不应该是一个问题。


1
我正在使用 Android Studio 1.2 稳定版本,遇到了同样的问题。
对我来说,解决方案是使用 Canary 渠道,并更新 Android Studio 到 1.3 版本。
现在我已经使用这个版本,并且它运行得非常好,但这不是一个稳定版本。

enter image description here

我的 build.gradle 是这样的:

应用插件:'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion '21.1.2'

    defaultConfig {
        applicationId "com.androidtest.materialdesign"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'
}

1
将安卓版本从22更改为21,问题解决了,它是右上角的小安卓图标。

1

补充david.schreiber的回答,如果您将预览窗口保持紧密,则可能需要将其拉伸以访问该Android图标。

enter image description here

enter image description here


0
  • 清理项目
  • 重新构建项目
  • 同步 Gradle

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