![](/img/trans.png)
[英]Android XML layout preview not working in Android Studio Dolphin 2021.3.1 Patch 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 我的所有项目设计预览和布局预览都没有显示。 如果有人解决了这个问题,请帮助我。
我已经尝试了所有可能的方法,但没有找到任何解决方案。 以下是我尝试过的要点
查看下面的屏幕截图,以便每个人都了解我遇到的问题。
提前致谢。
对我来说,某些布局工作正常,但在某些布局中,我收到以下错误,该错误曾在 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'
我希望这对你有帮助。
降级到 Android Studio Chipmunk (2021.2.1) 补丁 2 https://developer.android.com/studio/archive
之后它将起作用。
这似乎是 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在你的模块中。
就我而言,如果 android 工作室包含“ include
”标签,则无法显示 XML。
我的项目有 100 多个 XML 文件,其中include
,并且没有一个可以显示预览。 否则,很好。
我也遇到过这个问题。 将 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 决定在Dolphin或Electric Eel中修复此问题之前,我相信这就是我们所坚持的。
如果您在布局中使用自定义视图,我会遇到同样的问题,请查看此答案https://stackoverflow.com/a/66337620/14599955 。
不要使用 alpha 版本。 用这个
implementation 'com.google.android.material:material:1.7.0'
我也有布局页面没有出现的问题,直到我复制它并一个一个地删除整个布局以找出哪个视图有问题,它才以任何方式解决。 有趣的是,布局的副本完好无损并且可以正常工作。
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.