Ошибка при реализации Material Design в Android

Я читал новый веб-сайт с материальным дизайном, но у меня возникла проблема с его реализацией.

Приложение, над которым я сейчас работаю, представляет собой простое тестовое приложение, в котором нет ничего, кроме кнопки и некоторых текстовых представлений.

Проблема возникает после помещения implementation 'com.google.android.material:material:1.0.0-alpha1' в файл gradle.

вот мой файл build.gradle (приложение)

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.example.user.firebasemessagingtest"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    implementation 'com.google.firebase:firebase-core:15.0.2'
    implementation 'com.google.firebase:firebase-messaging:15.0.2'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.2'
    implementation 'com.google.firebase:firebase-ml-vision:15.0.0'
    implementation 'com.google.android.material:material:1.0.0-alpha1'
}

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

У меня 4 ошибки,

error: resource android:attr/dialogCornerRadius not found.
error: resource android:attr/fontVariationSettings not found.
error: resource android:attr/ttcIndex not found.
error: failed linking references.

Я включил maven в файл Gradle проекта, как указано в документации.

5
0
5 101
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Попробуй это

изменить версию compileSdkVersion и Support Libraries

compileSdkVersion  'android-P'
Support Libraries to '28.0.0-alpha1'

и использовать

 api 'com.android.support:design:28.0.0-alpha1'

РЕДАКТИРОВАТЬ

Update your SDK Platform update - Android P Preview (latest)

and also make targetSdkVersion 'P'

Чем Clean-Re_Build-Run ваш проект

РЕДАКТИРОВАТЬ 2

apply plugin: 'com.android.application'

android {

    compileSdkVersion  'android-P'

    defaultConfig {
        applicationId "com.example.nilesh.testapp"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:28.0.0-alpha1'
    implementation 'com.android.support:support-v4:28.0.0-alpha1'
    compile 'com.android.support:design:28.0.0-alpha1'
    compile 'com.android.support:cardview-v7:28.0.0-alpha1'

    implementation 'com.android.support.constraint:constraint-layout:1.1.0'

    testImplementation 'junit:junit:4.12'

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


    implementation 'com.google.firebase:firebase-core:15.0.2'
    implementation 'com.google.firebase:firebase-messaging:15.0.2'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.2'
    implementation 'com.google.firebase:firebase-ml-vision:15.0.0'

    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
repositories {
    mavenCentral()
}

Надеюсь это поможет

Это немного помогло, хотя только начало выдавать другие ошибки. Я пробовал следовать за ответом, опубликованным Здесь, но все равно не пошел.

Demonic218 14.05.2018 15:33

По-прежнему возникает ошибка - "Тип программы уже присутствует: android.support.v4.app.INotificationSideChannel"

Demonic218 15.05.2018 08:39

Добавление android.useAndroidX = true android.enableJetifier = false в gradle.properties устранило ошибку сборки, но когда я попытался запустить его на своем мобильном телефоне, он снова получил ошибки.

Demonic218 15.05.2018 08:43

@ Demonic218, проверьте мой edit2, он отлично работает в студии Android

AskNilesh 15.05.2018 08:58

Извини, чувак, но все равно никуда. В моем диспетчере SDK Android P Preview говорит, что он установлен частично, если я его открою, Android SDK Platform P будет единственной установленной, это нормально или все они должны быть загружены?

Demonic218 15.05.2018 09:20

@ Demonic218 да Пожалуйста, обновите платформу SDK до Android P Preview (последней версии)

AskNilesh 15.05.2018 09:22

Теперь у меня есть все, что находится под Android P sdk, загружено и установлено, и у меня все еще та же проблема.

Demonic218 15.05.2018 12:04

Установите compileSdkVersion как 'android-P'.

Совместите библиотеку поддержки с compileSdkVersion. Например, implementation 'com.android.support:support-v4:28.0.0-alpha1' вместо implementation 'com.android.support:appcompat-v7:27.1.1'.

Замените implementation 'com.google.android.material:material:1.0.0-alpha1' на api 'com.android.support:design:28.0.0-alpha1'.

Приложение build.gradle должно выглядеть примерно так.

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 'android-P'

    defaultConfig {
        applicationId "com.wolfrevokcats.myapp"
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 16
        versionName "2.3"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            debuggable false
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            debuggable false
            minifyEnabled false
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    api 'com.android.support:design:28.0.0-alpha1'
    implementation 'com.android.support:support-v4:28.0.0-alpha1'
    implementation ('com.someone.addons:library:1.6.1@aar'){
        exclude group: 'com.android.support'
        exclude module: 'appcompat-v7'
        exclude module: 'support-v4'
    }
    implementation 'com.google.android.gms:play-services-location:15.0.1'

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

Поскольку используется 'com.android.support:design:28.0.0-alpha1', наш код придется изменить на android.support.design вместо библиотек com.google.android.material. Вот пример использования нового виджета Bottom App Bar.

<android.support.design.bottomappbar.BottomAppBar
        android:id = "@+id/toolbar"
        style = "@style/Widget.MaterialComponents.BottomAppBar"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:layout_gravity = "bottom"
        app:fabAttached = "true"
        app:fabAlignmentMode = "center"/>

На самом деле я решил пойти именно по этому пути, поскольку в руководстве на веб-сайте Material.io используется support: design вместо android.material. Не могли бы вы сказать мне, в чем разница между ними?

Demonic218 15.05.2018 19:13

Google развертывает новую структуру пакетов, чтобы различать, что входит в операционную систему Android, а что нет. Те, которые не будут, будут выпущен под новым пакетом androidx. * hiearchy. Узнать больше о AndroidX

Nur Ilyas 16.05.2018 01:21
com.android.support:design будет заменен библиотекой com.google.android.material:material:xxx, как показано на странице Рефакторинг AndroidX.
Nur Ilyas 16.05.2018 01:22

Версии android.support. * Перестанут работать после выпуска 28.0.0.

Nur Ilyas 16.05.2018 01:22

Так разве внедрение android.support.design сейчас не будет пустой тратой времени, ведь он будет заменен?

Demonic218 16.05.2018 09:33

Другие вопросы по теме