BottomAppBar выбрасывает IllegalArgumentException - PullRequest
0 голосов
/ 26 ноября 2018

Я использую новейшую библиотеку 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>

Вот исключение.Полный журнал здесь .

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.

1 Ответ

0 голосов
/ 26 ноября 2018

Установите этот флажок Включить репозиторий Google Maven в build.gradle.

allprojects {
repositories {
  jcenter()
  maven {
    url "https://maven.google.com"
  }
}
}

Поместите зависимость компонентов материала в свой build.gradle.Помните, что версия материала регулярно обновляется.

implementation 'com.google.android.material:material:1.0.0-alpha1'

Установите для compileSdkVersion и targetSdkVersion последнюю версию API для Android P, значение которой равно 28.

android {
compileSdkVersion 28
defaultConfig {
    applicationId "com.xxx"
    minSdkVersion 19
    targetSdkVersion 28
    versionCode 0
    versionName "1"

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...