添加 Material Design 时,布局预览不显示布局

2024-01-10

我正在开发一个 Android 应用程序。一切看起来都很完美,直到我决定使用材料设计在我的主题中。添加后材料设计主题、布局预览不显示预览,但在手机上构建时效果良好。当删除 xml 中使用的材料设计组件时,一切都完美运行。

附上我的代码:

活动主页.xml

     <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/background"
        tools:context=".home.Home">


        <com.google.android.material.button.MaterialButton
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_centerInParent="true"
            android:id="@+id/logout"
            android:text="LOG OUT"
            />
    </RelativeLayout>

HomeActivity.java

package com.****.*****.home;


import androidx.appcompat.app.AppCompatActivity;
import com.hashimshafiq.prepup.R;
import butterknife.OnClick;

public class Home extends AppCompatActivity  {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        ButterKnife.bind(this);
    }

    @OnClick(R.id.logout) void onClickLogout(){

    }


}

build.graple(应用程序模块)

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.****.*****"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    }
    buildToolsVersion = '28.0.3'
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation 'androidx.annotation:annotation:1.1.0'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
    implementation 'com.google.firebase:firebase-database:16.0.4'
    implementation 'com.google.firebase:firebase-auth:16.0.5'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation "com.google.android.material:material:1.1.0-alpha09"
    implementation 'com.jakewharton:butterknife:10.1.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
    implementation 'com.facebook.android:facebook-android-sdk:5.2.0'
}

build.gradle(准备)

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
        classpath 'com.google.gms:google-services:4.2.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()

    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

样式.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

    </style>


    <style name="AppTextField" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">

        <item name="boxBackgroundColor">@color/background</item>
        <item name="boxStrokeColor">@android:color/white</item>
        <item name="hintTextColor">@android:color/white</item>


    </style>




</resources>

主要发生在布局预览中的错误

java.lang.IllegalArgumentException:java.lang.ClassCastException@b83d5b8 在 sun.reflect.GenerateMethodAccessor509.invoke(来源未知) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 android.animation.PropertyValuesHolder_Delegate.callMethod(PropertyValuesHolder_Delegate.java:108) 在 android.animation.PropertyValuesHolder_Delegate.nCallFloatMethod(PropertyValuesHolder_Delegate.java:143) 在 android.animation.PropertyValuesHolder.nCallFloatMethod(PropertyValuesHolder.java) 在 android.animation.PropertyValuesHolder.access 400 美元(PropertyValuesHolder.java:38) 在 android.animation.PropertyValuesHolder$FloatPropertyValuesHolder.setAnimatedValue(PropertyValuesHolder.java:1387) 在 android.animation.ObjectAnimator.animateValue(ObjectAnimator.java:990) 在 android.animation.ValueAnimator.setCurrentFraction(ValueAnimator.java:674) 在 android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:637) 在 android.animation.ValueAnimator.start(ValueAnimator.java:1069) 在 android.animation.ValueAnimator.start(ValueAnimator.java:1088) 在 android.animation.ObjectAnimator.start(ObjectAnimator.java:852) 在 android.animation.ValueAnimator.startWithoutPulsing(ValueAnimator.java:1081) 在 android.animation.AnimatorSet.handleAnimationEvents(AnimatorSet.java:1142) 在 android.animation.AnimatorSet.startAnimation(AnimatorSet.java:1227) 在 android.animation.AnimatorSet.start(AnimatorSet.java:729) 在 android.animation.AnimatorSet.start(AnimatorSet.java:684) 在 android.animation.StateListAnimator.start(StateListAnimator.java:188) 在 android.animation.StateListAnimator.setState(StateListAnimator.java:181) 在 android.view.View.drawableStateChanged(View.java:21105) 在 android.widget.TextView.drawableStateChanged(TextView.java:5283) 在 androidx.appcompat.widget.AppCompatButton.drawableStateChanged(AppCompatButton.java:156) 在 android.view.View.refreshDrawableState(View.java:21160) 在 android.view.View.dispatchAttachedToWindow(View.java:18379) 在 android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404) 在 android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404) 在 android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404) 在 android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404) 在 android.view.AttachInfo_Accessor.setAttachInfo(AttachInfo_Accessor.java:42) 在com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:335) 在 com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:391) 在 com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:195) 在 com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:540) 在 com.android.tools.idea.rendering.RenderTask.lambda$inflate$5(RenderTask.java:666) 在 java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)

注意:应用程序在移动设备上运行良好,但布局预览未显示布局,这就是问题所在。

提前致谢。

Edit我已完成以下解决方案,但没有任何反应并且错误仍然存​​在。

  • 使缓存无效并重新启动
  • 干净的构建
  • 将 Material Design 恢复至 1.0.0 版本

进行以下更改后刷新布局:

1) 删除线tools:context=".home.Home"来自文件中的父布局活动主页.xml.

2)更改类名Home to 主页活动在文件中HomeActivity.java.

3) 将项目与 gradle 文件重新同步。

Edit:

这不是由于 XML/后端代码中的错误造成的。这是由于 Android Studio 中的一个可跟踪的错误造成的here https://issuetracker.google.com/issues/132316448它显然也在版本 3.6 Canary 3(API 29 和material_version = '1.1.0-alpha08')中得到了修复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

添加 Material Design 时,布局预览不显示布局 的相关文章

  • 如何在 Android 中使用 Assets 中预加载的 SQLite 数据库

    我想用preloaded database在我的应用程序中意味着尝试在安装 apk 时获取数据库 以便可以使用已保存在其中的数据 我复制了 成分 db 文件位于资产文件夹中 并使用以下代码 但这会出现错误 从资源文件复制数据库时出现问题 我
  • 安卓无法玩ogg

    有人知道这是什么意思吗 ogg使用phonegap is Media播放 它使用MediaPlayer 05 26 15 41 50 007 1160 3631 E AudioFlinger no more track names avai
  • Android 自定义视图不能以正确的方式处理透明度/alpha

    我正在绘制自定义视图 在此视图中 我使用两个不同的绘画和路径对象在画布上绘画 我基本上是在绘制两个重叠的形状 添加 Alpha 后 视图中重叠的部分比图像的其余部分更暗 这是不希望的 但我不知道如何解决它 这是我的代码片段 用于展示我如何在
  • 毕加索动画加载图像

    我有以下代码在毕加索中加载图像 使用可绘制的占位符在图像下载时显示 不过 我想要的是一个动画旋转进度条样式的旋转器 它可以在图像加载时不断地旋转 就像我在大多数专业应用程序中看到的那样 毕加索似乎不支持这一点 只支持静态图像可绘制 有没有办
  • FileNotFoundException:/存储/模拟/0/Android

    我尝试这个文件写入器 读取器代码段进行测试 File file new File Environment getExternalStorageDirectory LM lm lisdat 01 txt FileOutputStream ou
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • 如何从 Retrofit2 获取字符串响应?

    我正在做 android 正在寻找一种方法来执行超级基本的 http GET POST 请求 我不断收到错误 java lang IllegalArgumentException Unable to create converter for
  • 应用内结算错误

    我的 UNMANAGED 应用内购买无法正常工作 在它完美运行之前 我可以使用测试帐户成功购买 但它突然不起作用了 因为我记得我对商家帐户所做的只是添加更多 2 4 个测试帐户 添加后 我的应用内购买将不起作用 所以我更新了公钥并上传了一个
  • Firebase ANR - 甚至不使用 firebase

    随着 GMS 的最新更新 引入了新的 ANR 如果您退出应用程序 然后返回 则 ANR 就会初始化 线程跟踪似乎指向 Firebase 但我什至从未开始使用 Firebase 我猜它一定是新的 GMS 包的一部分 06 11 00 34 0
  • 导航抽屉默认片段

    我是一名新手开发人员 我正在将导航抽屉与 android support v7 集成到我的应用程序中 我有一个问题 当我启动应用程序时 主要布局是这样的
  • 如何在React中的Material-UI选择框中设置默认值?

    我在用选择框 https material ui com demos selects 来自材料用户界面 我想显示默认选择的 选择值 选项 但之后用户无法选择此选项
  • 从 TextView 中显示的数字中删除小数点[重复]

    这个问题在这里已经有答案了 对于我的简单计算器 我将结果显示在TextView 但它总是显示小数 我怎样才能删除它们 这是我的代码 public class MainActivity extends Activity implements
  • Android Studio IDE 上的“文本/设计”选项卡缺少新的 Android 项目

    如何在创建新项目期间自动创建的 Activity main xml 文件的 src main res layout 文件夹中启用文本 设计选项卡 如果我右键单击并在所述文件夹上创建 xml 文件 则设计 文本选项卡存在 有什么建议吗 谢谢
  • Nexus 7 (2013) 和 Win 7 64 - 尽管检查了许多论坛和在线资源,仍无法安装 USB 驱动程序

    我正在尝试设置 Nexus 7 2013 进行调试 但我在安装 USB 驱动程序的步骤中陷入困境 到目前为止 这是我尝试过的 采取的步骤 在 Nexus 7 2013 上打开调试模式 连接设备至 PC 下载 Google USB 驱动程序于
  • android httprequest java.net.UnknownHostException

    我想用android发出http请求 是使用这个 void testHTTP HttpClient httpClient new DefaultHttpClient HttpUriRequest request new HttpPost h
  • 直接使用从密钥库加载的 SecretKey 时,密钥用户未经过身份验证

    我正在尝试使用 Cipher 和在 KeyStore 中加载的 SecretKey 来加密数据 但总是收到此错误 导致 android security KeyStoreException 关键用户未经过身份验证 我尝试自己创建 Secre
  • 安卓的限制

    我需要构建一个应用程序 该应用程序拍摄相机图像并将其上传到网络 在网络上进行一些处理并返回真 假 我在这方面遇到了一些问题 希望得到澄清 1 我的应用程序有什么方法可以知道 Android 相机捕获的图像吗 我从这里明白了什么 Androi
  • 在android中跟踪FTP上传数据?

    我有一个运行 Android 的 FTP 系统 但我希望能够在上传时跟踪字节 这样我就可以在上传过程中更新进度条 安卓可以实现这个功能吗 现在 我正在使用org apache common net ftp我正在使用的代码如下 另外 我在 A
  • Android:解析 XML 数据的最佳解析器 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在开发一个应用程序 其中我第一次要解析来自远程服务器的 xml 文件中的数据 但我无法选择哪个解析器是有效的或最适合解析的 因为我知道主要有
  • 在没有 Wifi 的情况下获取 Android 设备的 MAC 地址

    如何获取没有 Wifi 接口的 Android 设备 例如 Android 模拟器 的网络接口的 MAC 地址 通过WifiManager返回获取的WifiInfonull EDIT 更清楚地说 我必须与本地网络上的现有网络协议 不是我设计

随机推荐

  • 使用Python获取DNS解析时间和响应时间

    PycURL 或任何其他 python 包是否提供以下信息 lookup 连接时间 我想获得与此 cURL 命令相同的信息 不使用子进程调用该命令 Command curl s w nLookup time t time namelooku
  • 我正在计算观看次数,但这会导致错误

    错误名称 page hits 用takes context True修饰 因此它必须有第一个参数 context 我制作了视图计数器 该函数必须处理人员对站点的输入并将其输出到模板 请提供现成的修复代码已经阅读了很多https docs d
  • 拒绝安装“模块”作为其自身的依赖项

    最近 我在玩 gulp 教程时遇到了这个错误 Refusing to install gulp as a dependency of itself 执行时 npm install save dev gulp 可能是什么问题 问题出在我自己的
  • Ruby:如何将变量设置为 0,或者如果已设置,则增加 1

    我知道 运算符 但认为它不会对我有帮助 尝试创建一个数组来计算对象数组中 类型 的数量 array each do c newarray c type newarray c type newarray c type 1 0 end 有没有更
  • 如何修复错误:命令“x86_64-linux-gnu-gcc”失败,退出状态为 1

    我正在尝试在 VirtualBox 机器上全新安装的 Linux 上安装 odoo 我已按原样输入此处找到的命令 Odoo 开发阅读文档 http odoo development readthedocs org en latest ins
  • 使用 jquery 窗口大小动态调整元素大小

    我已经查看了有关此主题的许多问题 但似乎无法找出我的代码有什么问题 任何帮助将不胜感激 window resize function var newwidth window innerWidth var newheight window i
  • 如何让 PHP 5.3.8 读取 .user.ini 文件?

    我有一台运行 Apache 2 2 21 和 PHP 5 3 8 的 Mac OS X 服务器 我想在每个目录的基础上设置一些 php ini 样式指令 根据PHP手册页 http www php net manual en configu
  • 如何在 Groovy 中在特定日期和时间创建新日期

    我想知道是否还有其他方法如何创建新的Date在特定日期和时间的 Groovy 中 而不是从中解析它String with Date parse方法 我可以得到完整的清单吗Date在 Groovy 中创作 您可以使用现有的 Java 方法来创
  • gstreamer playbin - 在 Windows 上设置 uri

    我正在尝试使用此站点上的 CLI 示例播放一些音频文件 http pygstdocs berlios de pygst tutorial playbin html http pygstdocs berlios de pygst tutori
  • C代码中的QA C警告消息[重复]

    这个问题在这里已经有答案了 我编写了以下一段代码并通过 QA C 进行了分析 但它显示了警告 x 具有外部链接 并且正在定义而没有任何先前的声明 请帮助我理解这一点 Code include
  • 使用 cURL 命令时出现 URL 问题

    我在使用curl 来使用网络服务时遇到了问题 如果我们使用 Postman 消费 有一个 URL 可以正常工作 但如果通过 cURL 消费 则失败 Postman 中的 URL 工作正常 https localhost WebService
  • R 将矩阵的行乘以向量的行的最快方法

    我想将矩阵的行乘以向量的每一行 元素 而不是整个向量 正如已经发布的另一个问题所讨论的那样 例如 我想使用这两个矩阵 或者 oo 是一个向量 因为它是一列 oo matrix 1 3 3 1 oop matrix 1 9 3 3 byrow
  • 如何检查滚动条是否可见?

    是否可以检查overflow auto一个 div 的 例如 HTML div style width 100px height 100px class my class content div JQUERY my class live h
  • bash 使用正则表达式查找不区分大小写

    我需要查找以三个小写字母开头的文件 但由于某种原因 我遇到了不希望的不区分大小写的行为 我将 find 与 regex 选项一起使用 但它甚至找到以大写字母开头的文件 find regextype posix egrep regex a z
  • JSON 与 XML 的性能注意事项

    我正在使用一个 Web 服务 它提供 XML 或 JSON 格式的大型结果集 哪种格式会更快或更好 基于性能 另外我应该使用哪种语言来解析 XML JSON 我应该使用 PHP 还是 JavaScript PHP 或 JavaScript
  • Android - Facebook 共享内容被覆盖

    这是我在 Facebook 上分享高分的代码 ShareLinkContent content new ShareLinkContent Builder setImageUrl Uri parse http www example com
  • 获取 Today-Extension 内通知中心的宽度

    我目前正在尝试将 CollectionView 放入 Today 扩展中 但有件事让我烦恼 我希望实现每个单元格都适合我的集合视图的一行 因此 根据项目数计算单元格宽度 在 iPhone 上一切正常 但在 iPad 上却看起来不太正常 单元
  • 将 Azure 诊断日志写入 Blob 存储的性能影响

    我们在 Azure 上运行的 C Web 应用程序使用 System Diagnostics Trace 编写跟踪语句以进行调试 故障排除 一旦我们为这些日志启用 blob 存储 使用 Azure 门户中的 应用程序日志记录 blob 选项
  • 将 Serilog 与 Azure 日志流结合使用

    我一直在研究如何使用 Serilog 写入 Azure 日志流 我也在这里找到了一些答案 例如 一个答案是建议登录到特定文件夹中的文件 home LogFiles http 但它似乎对我不起作用 我尝试使用Trace https githu
  • 添加 Material Design 时,布局预览不显示布局

    我正在开发一个 Android 应用程序 一切看起来都很完美 直到我决定使用材料设计在我的主题中 添加后材料设计主题 布局预览不显示预览 但在手机上构建时效果良好 当删除 xml 中使用的材料设计组件时 一切都完美运行 附上我的代码 活动主