【问题标题】:Android Studio 3.1 layout preview does not show preview for some layoutsAndroid Studio 3.1 布局预览不显示某些布局的预览
【发布时间】:2020-03-02 23:42:33
【问题描述】:

从今天早上开始,我就开始遇到这个奇怪的问题。 Android Studio 布局预览面板和设计视图没有显示我的一些布局,这些布局在我将 Android Studio 从 3.0.1 更新到 3.1 之前非常好。

我尝试了以下方法,但没有帮助:

  1. 将 buildTools 从 27.0.2 更新到 27.0.3
  2. 将支持库从 27.0.2 更新到 27.1.1
  3. 将约束布局库从 1.1.0-beta5 更新到 1.1.0-beta6
  4. 多次将项目与 Gradle 文件同步
  5. 多次清理和重建项目
  6. Android Studio 无效并重新启动
  7. 从文件菜单中关闭项目并重新打开它(我怀疑这是由于布局预览缓存管理不善导致没有被清除)
  8. 终于重启了我的电脑

Android Studio 详情:

安卓工作室 3.1 构建 #AI-173.4670197,构建于 2018 年 3 月 22 日 JRE:1.8.0_152-release-1024-b02 amd64 JVM:JetBrains s.r.o 的 OpenJDK 64 位服务器 VM 视窗 8.1 6.3

【问题讨论】:

    标签: android android-layout android-studio-3.1


    【解决方案1】:

    在我的情况下,我确实构建然后单击强制刷新布局开始显示预览

    试试这是否能解决你的问题,

    【讨论】:

    • 不,它没有用。在发布此问题之前,我多次尝试“强制刷新布局”。我可以知道你的 Android Studio 版本吗?
    • @Monish 我的版本是 3.1,抱歉我的回答没有帮助
    【解决方案2】:

    在多次尝试失败后,将其提交到 Android Studio 错误跟踪器并再次尝试。我发现这是由于缺少“+”

    演示问题的示例布局

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <TextView
            android:id="@+id/rightTextView"
            style="@style/Base.TextAppearance.AppCompat.Medium"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="24dp"
            android:padding="12dp"
            android:text="This is a sample TextView at Right"
            app:layout_constraintStart_toEndOf="@+id/leftTextView" />
    
        <TextView
            android:id="@id/leftTextView"
            style="@style/Base.TextAppearance.AppCompat.Large"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="12dp"
            android:text="Left"
            android:textColor="@color/colorAccent" />
    
    </android.support.constraint.ConstraintLayout>
    

    问题是由于 leftTextView id 声明中缺少 +。 换行后(第18行)

    android:id="@id/leftTextView"

    android:id="@+id/leftTextView"

    Android Studio 布局预览面板开始显示布局。

    注意: 我总是在布局文件第一次出现时(声明或引用)只声明一次视图 ID(即“@+id”),布局预览或运行应用到现在

    【讨论】:

    • 非常感谢!我一直在寻找那个解决方案,它奏效了。为什么@id 不起作用??
    • 作为参考,@+id 将 id 添加到可用 id 列表中,@id 查找已添加的那个。似乎预览找不到视图并且布局没有显示。 R 文件在您编码时预编译和生成
    【解决方案3】:

    对于带有插件版本 28.0.0 的 Android Studio 3.1 Gradle 版本,添加 implementation 'com.android.support:appcompat-v7:28.0.0-alpha1' 而不是 implementation 'com.android.support:appcompat-v7:28.0.0-rc01'.

    【讨论】:

      【解决方案4】:

      我的麻烦在于 NDK - 只需更新它并清理 + 重建项目。

      【讨论】:

        猜你喜欢
        • 2016-04-02
        • 1970-01-01
        • 1970-01-01
        • 2018-11-20
        • 1970-01-01
        • 2022-09-22
        • 1970-01-01
        • 2014-12-23
        • 2020-05-04
        相关资源
        最近更新 更多