如何解决不支持的渲染问题 Path.op()?
Posted
技术标签:
【中文标题】如何解决不支持的渲染问题 Path.op()?【英文标题】:how to solve render problem Path.op() not supported? 【发布时间】:2020-05-05 15:47:23 【问题描述】:如何解决此错误: 渲染问题 不支持 Path.op()
我尝试强制刷新布局,重启,更新android Studio,停止杀毒一段时间,但问题仍然存在。
令人惊讶的是我能够编译和运行应用程序,但是如何摆脱这个错误呢?
我正在使用:
Android Studio 3.5.3 Android SDK 工具 29.0.2 Android SDK 平台 Android 10.0 (Q) Android SDK 平台 29 默认 OpenJDK 平台二进制文件重现错误:
使用空活动创建新的 Android 项目将布局替换为以下布局:
<?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/parent_view"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_
tools:context=".MainActivity"
android:background="@android:color/white">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar"
android:layout_
android:layout_>
<include layout="@layout/toolbar" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView
android:id="@+id/nested_scroll_view"
android:layout_
android:layout_
android:clipToPadding="false"
android:scrollbars="none"
android:scrollingCache="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:layout_
android:layout_
app:cardCornerRadius="0dp"
app:cardElevation="2dp">
<RelativeLayout
android:layout_
android:layout_>
<androidx.viewpager.widget.ViewPager
android:id="@+id/pager"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:background="@android:color/darker_gray" />
<RelativeLayout
android:layout_
android:layout_
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:orientation="vertical"
android:paddingBottom="16dp"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:paddingTop="14dp">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_
android:layout_
android:text="Title is going here"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="@android:color/white" />
<TextView
android:id="@+id/brief"
android:layout_
android:layout_
android:text=" Location"
android:textAppearance="@style/TextAppearance.AppCompat.Small" />
</LinearLayout>
<LinearLayout
android:id="@+id/layout_dots"
android:layout_
android:layout_
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_gravity="end"
android:gravity="center"
android:orientation="horizontal" />
</RelativeLayout>
</RelativeLayout>
</androidx.cardview.widget.CardView>
<View
android:layout_
android:layout_ />
<LinearLayout
android:layout_
android:layout_
android:layout_margin="16dp"
android:orientation="vertical">
<TextView
android:layout_
android:layout_
android:text="Description"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/darker_gray" />
<TextView
android:layout_
android:layout_
android:layout_marginTop="6dp"
android:lineSpacingExtra="4dp"
android:text="very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum very_long_lorem_ipsum "
android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
android:textColor="@android:color/darker_gray"/>
</LinearLayout>
<View
android:layout_
android:layout_ />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
【问题讨论】:
【参考方案1】:我昨天遇到了同样的问题。我的与
有关com.google.android.material.appbar.AppBarLayout
组件。
我不知道具体原因,但添加android:background="..."
即可解决。
【讨论】:
【参考方案2】:我也遇到了同样的问题。原因是,新版本的材料组件与此错误捆绑在一起。所以,我尝试将 Gradle 构建脚本中的版本替换为支持Path.op()
的版本。
所以,您唯一需要做的就是用这个替换 Gradle 构建脚本中的依赖项:
实现'com.google.android.material:material:1.2.0-alpha02'
【讨论】:
也为我工作。按钮图标未显示在布局上,这解决了问题。 当前最新版本:'com.google.android.material:material:1.3.0'
好像已经修复了这个bug
解决方案:使用新的布局渲染引擎。为此,请转到设置 -> 实验性 -> 选中“使用新的布局渲染引擎”【参考方案3】:
我遇到了同样的问题。当我运行应用程序时,问题得到了改善。我认为当你清理并重建你的项目时,这个问题会得到改善。
【讨论】:
【参考方案4】:在使用芯片时遇到同样的问题,它在布局编辑器中不可见。通过更改解决它
implementation 'com.google.android.material:material:1.2.0-alpha03'
到
implementation 'com.google.android.material:material:1.2.0-alpha02'
【讨论】:
【参考方案5】:通过替换 Gradle Build 中的材料组件实现解决了问题(在 App 级别)
com.google.android.material:material:1.2.0-alpha05
到
com.google.android.material:material:1.2.0-alpha02
【讨论】:
【参考方案6】:替换
实现fileTree(dir: 'libs', include: ['*.jar'])
api 'com.google.android.material:material:1.2.0-alpha06'
到
实现fileTree(dir: 'libs', include: ['*.jar'])
api 'com.google.android.material:material:1.2.0-alpha02'
【讨论】:
【参考方案7】:有点晚了,但是
implementation 'com.google.android.material:material:1.2.0-alpha06'
工作正常,因此无需再降级到 alpha02。
【讨论】:
不适合我。已经使用 alpha-06 并且在清除、重建后出现同样的问题。 刚刚试了1.2.0-rc01
,bug还在。
当前最新版本:'com.google.android.material:material:1.3.0'
似乎工作正常【参考方案8】:
遇到此问题的任何人只需降级或升级您的材料设计依赖项 到
implementation 'com.google.android.material:material:1.2.0-alpha02'
在渲染方面似乎更稳定,尤其是如果您使用的是 android studio V3.4 及更高版本。 我有时会想念日食
【讨论】:
【参考方案9】:如果您在内部使用“ImageView”,请确保它们的 XML 代码是这样的。
您的默认生成可能如下所示。 Wrong XML Code
将 (tools:srcCompat="@drawable/img_avatar") 更改为 (android:src="@drawable/img_avatar"),如下所示 Correct XML Code
我认为它会为您解决这个问题。谢谢。
其他细节:- My Android Studio Version My Gradle Dependencies
当我尝试在 ImgView 中显示 PNG 时遇到了这个问题。
【讨论】:
【参考方案10】:刚刚更新:版本 1.3.0-rc01 已经发布。你可以使用
implementation 'com.google.android.material:material:1.3.0-rc01'
【讨论】:
解决方案:使用新的布局渲染引擎。为此,请转到设置 -> 实验性 -> 选中“使用新的布局渲染引擎”【参考方案11】:该错误似乎已在最新版本的材料组件中得到解决,目前是:
implementation 'com.google.android.material:material:1.3.0'
【讨论】:
【参考方案12】:使用新的布局渲染引擎帮助解决了我的问题。转到设置 -> 实验性 -> 使用新的布局渲染引擎
【讨论】:
【参考方案13】:只是不要定义版本: 实施 'com.google.android.material:material' 它对我有用。
【讨论】:
【参考方案14】:对我来说,只有在从 androidx.recyclerview.widget.RecyclerView 中删除 fastScroll 设置后,才解决了问题。
【讨论】:
【参考方案15】:更改依赖项对我有用:
implementation 'com.google.android.material:material:1.2.0'
【讨论】:
【参考方案16】:使用实验性渲染引擎,它为我解决了这个问题。首先由Carlos推荐。
这是在 android studio 中的操作方法。
转到文件 > 设置
现在将显示设置窗口。 转到 Experimental 选项卡并选中/勾选 使用新的布局渲染引擎
就是这样!
【讨论】:
以上是关于如何解决不支持的渲染问题 Path.op()?的主要内容,如果未能解决你的问题,请参考以下文章
js大数据量如何实现页面的局部渲染(不是局部刷新)--解决方法
[react] 如何解决引用类型在pureComponent下修改值的时候,页面不渲染的问题?
[react] 如何解决引用类型在pureComponent下修改值的时候,页面不渲染的问题?