Библиотека поддержки дизайна Android для API 28 (P) не работает - PullRequest
0 голосов
/ 10 июня 2018

Я успешно настроил среду Android-P SDK.Когда я пытаюсь использовать библиотеку поддержки дизайна Android, я сталкиваюсь с ошибками сборки проекта.Конфигурации проекта:

IDE: 3.2 Canary 17 Target API: 28 API компиляции: 28

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.app.navigationpoc"
        minSdkVersion 21
        targetSdkVersion 28
        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(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.0.0-alpha3'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.1'

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'

    implementation 'com.android.support:design:28.0.0-alpha3'
    implementation 'com.android.support:cardview-v7:28.0.0-alpha3'
}

И ошибка сборки:

Сбой манифеста: Атрибут application @ appComponentFactory value = (androidx.core.app.CoreComponentFactory) из [androidx.core: core: 1.0.0-alpha3] AndroidManifest.xml: 22: 18-86 также присутствует в [com.android.support:support-compat:28.0.0-alpha3] AndroidManifest.xml: 22: 18-91 value = (android.support.v4.app.CoreComponentFactory).Предложение: добавьте 'tools: replace = "android: appComponentFactory"' к элементу на AndroidManifest.xml: 6: 5-40: 19, чтобы переопределить.

Ответы [ 15 ]

0 голосов
/ 11 сентября 2018

Примечание. Вы не должны одновременно использовать зависимости com.android.support и com.google.android.material в своем приложении.

для добавления компонентов материалов для Android

dependencies {
// ...
implementation 'com.google.android.material:material:1.0.0-beta01'
// ...

}

Если ваше приложение в настоящее время зависит от исходной библиотеки поддержки проектирования, вы можете использовать опцию Refactor to AndroidX…, предоставляемую Android Studio.Это обновит зависимости и код вашего приложения для использования недавно упакованных библиотек androidx и com.google.android.material.

Если вы не хотите переключаться на новые androidx и com.google.android.material пока нет, вы можете использовать Материальные компоненты через зависимость com.android.support:design:28.0.0-alpha3.

0 голосов
/ 21 июня 2018

Добавьте это:

tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"

в ваше манифестное приложение

<application
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    tools:replace="android:appComponentFactory"
    android:appComponentFactory="whateverString">

надеюсь, что это поможет

0 голосов
/ 12 июня 2018

Ниже код работал отлично со мной:

dependencies {
    api 'com.android.support:design:28.0.0-alpha3'

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

    testImplementation 'junit:junit:4.12'

    androidTestImplementation 'androidx.test:runner:1.1.0-alpha2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha2'
}
0 голосов
/ 11 июня 2018

Вы можете использовать предыдущую версию API-пакетов артефактов или новую Androidx, но не обе одновременно.

Если вы хотите использовать предыдущую версию, замените свои зависимости на

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
    implementation 'com.android.support.constraint:constraint-layout:1.1.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'

    implementation 'com.android.support:design:28.0.0-alpha3'
    implementation 'com.android.support:cardview-v7:28.0.0-alpha3'
}

, еслиВы хотите использовать Androidx:

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.0.0-alpha3'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.1'

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'

    implementation 'com.google.android.material:material:1.0.0-alpha3'
    implementation 'androidx.cardview:cardview:1.0.0-alpha3'
}
0 голосов
/ 11 июня 2018

Я пересекаю эту ситуацию, заменяя все androidx.* на appropiate package name.

, изменяя вашу линию

implementation 'androidx.appcompat:appcompat:1.0.0-alpha3'
implementation 'androidx.constraintlayout:constraintlayout:1.1.1'

androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'

на

implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
implementation 'com.android.support.constraint:constraint-layout:1.1.1'

androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

NOTED

  • удалить tools:replace="android:appComponentFactory" из AndroidManifest
...