我正在使用最新的Material Design Android版库,并按照this文档创建BottomAppBar。
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragments.ARFragment">
<com.google.android.material.bottomappbar.BottomAppBar
android:id="@+id/bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/blue"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
这里是例外。完整日志为here。
java.lang.IllegalArgumentException: Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed
at android.graphics.Canvas.checkValidClipOp(Canvas.java:779)
at android.graphics.Canvas.clipRect(Canvas.java:826)
at com.google.android.material.shape.MaterialShapeDrawable.prepareCanvasForShadow(MaterialShapeDrawable.java:850)
at com.google.android.material.shape.MaterialShapeDrawable.draw(MaterialShapeDrawable.java:746)
at android.view.View.getDrawableRenderNode(View.java:20463)
at android.view.View.drawBackground(View.java:20399)
我看到了其他与该异常相似的StackOverFlow线程,但是对我来说没有答案,因为该异常在库中。
我正在Android P上进行测试。
答案 0 :(得分:1)
选中build.gradle中的“包含Google Maven存储库”。
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
}
在您的build.gradle中放置材料组件依赖项。请记住,主要版本会定期更新。
implementation 'com.google.android.material:material:1.0.0-alpha1'
将compileSdkVersion和targetSdkVersion设置为以Android P为28的最新API版本。
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.xxx"
minSdkVersion 19
targetSdkVersion 28
versionCode 0
versionName "1"
}