繁体   English   中英

Android Studio (海豚 | 2021.3.1) & (电鳗 | 2022.1.1) 不显示布局预览

[英]Android Studio (Dolphin | 2021.3.1) & (Electric Eel | 2022.1.1) does not show layout preview

我正在使用 Android Studio Dolphin | 2021.3.1 & 电鳗 | 2022.1.1

更新后 Android studio chipmunk | 2021.2.1 至 Android 工作室海豚 | 2021.3.1 我的所有项目设计预览和布局预览都没有显示。 如果有人解决了这个问题,请帮助我。

我已经尝试了所有可能的方法,但没有找到任何解决方案。 以下是我尝试过的要点

  1. 使缓存无效。
  2. 重启IDE。
  3. 维修IDE。
  4. 从设置项目结构更新 Gradle 插件版本到 7.3.0(没有工作)

查看下面的屏幕截图,以便每个人都了解我遇到的问题。

在此处输入图像描述

提前致谢。

对我来说,某些布局工作正常,但在某些布局中,我收到以下错误,该错误曾在 Android Studio 的早期版本中出现。

在此处输入图像描述

我在 Android(电鳗 | 2022.1.1)中遇到了同样的问题。 尽管如此,这个问题仍在继续。

我能够通过降级API 版本来修复该错误。
API 33 至 API 28。
然后无效缓存重新启动。

我试图更新 gradle 但没有与我一起工作。

所以在那之后我把它们从

Theme.MaterialComponents.DayNight.NoActionBar

Theme.Material3.DayNight.NoActionBar

和我一起工作

如果此解决方案对您不起作用

将此行添加到布局中的根组视图

android:theme="@style/Theme.MaterialComponents.Light.DarkActionBar.Bridge"

另一种解决方案

down material版本到这个版本

material_version = '1.6.1'

我希望这对你有帮助。

暂时解决这个问题。 使用“AppTheme”更改预览主题。 这是为我工作。 有关详细信息,请参阅附件图像

在此处输入图像描述

在此处输入图像描述

我有同样的问题并通过忽略问题面板中的一些错误来解决它

在此处输入图像描述

不是这个具体问题,这是为了举例

经过大量搜索和测试,我升级了我的 gradle 版本及其对我的工作。

只需转到File -> Project Structure或按Ctrl + Alt + Shift + S然后upgrate the gradle version ,如下图所示,然后invalidate cache and restart Android Studio 及其工作

在此处输入图像描述

如图所示,我升级了我的 gradle

Android Studio 的快乐编码:)

降级到 Android Studio Chipmunk (2021.2.1) 补丁 2 https://developer.android.com/studio/archive

之后它将起作用。

我可以通过将预览的主题从 App.Starting [默认] 更改为设计选项卡中的应用程序主题来解决此问题

在此处输入图像描述

这似乎是 Dolphin 中与 API 33 相关的错误,但对我来说,至少显示了布局预览工具栏。 如果可以以某种方式访问预览工具栏,则以下解决方法可以解决消失的预览(至少对我而言):布局工具栏中的 Select API 32而不是预选的 ZDB974238714CA8DE634A7CE1D083A1。

然后预览会按原样显示给我,我不必降级任何东西,并且可以使用最新的 gradle 版本。

Starting with Android Studio Chipmunk, if you're seeing java.lang.NoSuchFieldError: view_tree_saved_state_registry_owner or java.lang.ClassNotFoundException: androidx.savedstate.R$id in the issues panel, make sure to include a debugImplementation dependency to androidx.lifecycle:lifecycle -viewmodel-savedstate在您的模块中。

如果您在问题面板中看到java.lang.NoSuchFieldError: view_tree_lifecycle_owner ,请确保在模块中包含对androidx.lifecycle:lifecycle-runtime的 debugImplementation 依赖项。

If you're seeing java.lang.NoClassDefFoundError: Could not initialize class androidx.customview.poolingcontainer.PoolingContainer or java.lang.NoClassDefFoundError: androidx/customview/poolingcontainer/PoolingContainerListener in the issues panel, make sure to include a debugImplementation dependency to androidx .customview:customview-poolingcontainer在你的模块中。

问题跟踪器: https://issuetracker.google.com/issues/247058594

就我而言,如果 android 工作室包含“ include ”标签,则无法显示 XML。

我的项目有 100 多个 XML 文件,其中include ,并且没有一个可以显示预览。 否则,很好。

更改 AGP 版本并增加 Gradle 版本,如果您还没有在项目结构 > 项目到最新版本中单击应用并等待 gradle 完成。 完成后,只需使缓存无效并重新启动。 它对我有用。

在此处输入图像描述

我有与上面相同的问题,只是通过执行以下操作解决了

设置- SDK 工具并检查Android 模拟器更新只是更新它并重建项目并完成

无需降级API 版本

在此处输入图像描述

注意 - 如果在尝试使缓存无效并重新启动后不起作用

选项 2

完成上述任务后,尝试从上述预览设计中更新或 select 应用程序主题在此处输入图像描述

我也遇到过这个问题。 将 Android Gradle 插件切换到所有项目的7.3.0和 gradle 的7.4可以解决此问题。

带有包含标签的布局不起作用,并且在 dolphin 的预览中存在许多错误。 我认为他们应该提供更新以解决所有这些问题。

就我而言,解决此问题我执行以下步骤

首先,我只是通过设置项目结构将Gradle 插件版本更新为7.3.0 (No working)

之后我还将com.google.gms:google-services版本更新为4.3.14

现在一切正常。

我使用库中的自定义视图、样式和字体,在升级到 Dolphin 时遇到了这个问题。 我通过将库编译 SDK 升级到 33 来解决这个问题。将 gradle 升级到 7.3 并将 androidx.appcompat:appcompat 升级到 1.4+

执行此操作后,使缓存无效并重建,它应该可以工作。

谷歌知道这个问题https://issuetracker.google.com/issues?q=dolphin%20layout%20preview

如果您不能或不愿升级,则在发布补丁之前降级到 Chipmunk 也可以解决问题。

尝试删除/修改您在布局中用作样式/背景的任何可绘制资源文件。 这可能会导致渲染问题/触摸尺寸/触摸目标太小。 在我的例子中,我使用了这样的资源文件,在修改这些文件之后,布局对我来说是可见的。 谢谢。

尝试将您的 gradle 版本升级到最新版本(无论它是什么)。 我的工作

使用material:1.8.0-alpha01依赖项。 alpha02 在显示预览时出现问题。

如果所有这些解决方案都不起作用,那么您也可以尝试以下选项。 在 xml 文件中禁用 lottieAnimation,然后重新构建应用程序,然后它现在可以正常工作了。

对于因为其他依赖项而无法更新 Android Gradle 插件的您:

您需要稍等片刻,开发人员已经知道了。 最终应该有一个版本来纠正这个问题。

现在你可以做的是将 Android Studio 版本降级到Chipmunk | 2021.2.1 (或更早)

也许它不会解决您的问题。 但这可能会帮助那些遇到和我一样麻烦的人。 我有一个扩展布局,异常表示它无法初始化此类,并指向一个单例属性变量。

private SingletonProperty property = SingletonProperty.getInstance();

原来在布局类中不可能有单例字段(在 Android Studio Dolphin 之前没问题)。 在我将其移至多种方法后,一切正常。 在此之后不要忘记构建您的项目。

对我来说,禁用断言解决了这个问题。
我在这里找到了修复: https ://issuetracker.google.com/issues/255525863
要禁用断言,请将-da添加到自定义 VM 选项:

在此处输入图像描述


如果应用新选项后 Android Studio 无法启动,
自定义 VM 选项文件位于:

苹果系统:

~/Library/Application Support/Google/AndroidStudio2021.3/studio.vmoptions

显然,有很多人向谷歌报告了完全相同的问题,但目前还没有给出具体的解决方案:

我尝试了其他答案中的大部分建议,但到目前为止唯一对我有用的是升级到Flamingo ( 2022.2.1 Canary 10 ) 或降级到Chipmunk ( 2021.2.1 Patch 2 )。

这些解决方案显然远非理想,但在 Google 决定在DolphinElectric Eel中修复此问题之前,我相信这就是我们所坚持的。

如果您在布局中使用自定义视图,我会遇到同样的问题,请查看此答案https://stackoverflow.com/a/66337620/14599955

在此处输入图像描述

从右侧打开 Layout Validation 选项卡或从工具栏搜索菜单中搜索它现在看到我的问题在 MaterialAutoCompleteTextView 内部,调查问题是 android:fontFamily="More Fonts..." 字体没有指向正确的字体在此处输入图像描述

不要使用 alpha 版本。 用这个

implementation 'com.google.android.material:material:1.7.0'

我也有布局页面没有出现的问题,直到我复制它并一个一个地删除整个布局以找出哪个视图有问题,它才以任何方式解决。 有趣的是,布局的副本完好无损并且可以正常工作。

坦率地说,伙计们按照提到的答案中的建议尝试了一切,但似乎对我不起作用,可能是最近的 Android Studio 错误。

分享对我有用的东西(解决方法,而不是修复)

我不小心点击了屏幕截图中提到的LayoutValidation选项卡,现在使用它来预览我的设计,同时更新 XML 代码。 预览会在您进行更改时更新。

但是,是的,如果想使用设计进行更改,这可能没有帮助。

在此处输入图像描述

build.gradle(项目)

buildscript {
    dependencies {
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
    }
}

plugins {
    id 'com.android.application' version '7.3.0' apply false
    id 'com.android.library' version '7.3.0' apply false
    id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
    id 'com.google.gms.google-services' version '4.3.13' apply false
}

构建.gradle(应用程序)

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'kotlin-android'
    id 'kotlin-kapt'
    id 'kotlin-android-extensions'
    id 'dagger.hilt.android.plugin'
    id 'com.google.gms.google-services'
}

android {
    compileSdkVersion 31
    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        minSdkVersion 23
        targetSdkVersion 31
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
}   

如果您使用匕首/刀柄,请在库下方更新数据

    kapt "com.google.dagger:dagger-compiler:2.42"
    kapt "com.google.dagger:hilt-android-compiler:2.43.2"
    implementation "com.google.dagger:dagger:2.42"
    implementation "com.google.dagger:hilt-android:2.43.2"
    implementation 'androidx.hilt:hilt-work:1.0.0'
    kapt "androidx.hilt:hilt-compiler:1.0.0"
    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
    implementation "androidx.navigation:navigation-compose:2.5.1"

gradle-weapper.properties

distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

设置.gradle

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()

        maven { url 'https://jitpack.io' }
        maven { url "https://plugins.gradle.org/m2/" }
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }

    }
}
include ':app'

渲染 XML 的唯一方法是清除问题面板中的所有错误,在您的情况下,照片中有 4 个错误。 这对我有用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM