Ошибка слияния манифеста: Атрибут application @ appComponentFactory - PullRequest
0 голосов
/ 28 октября 2018

Так что все хорошо, но я пытаюсь добавить эту библиотеку https://github.com/wdullaer/MaterialDateTimePicker с этим

implementation 'com.wdullaer:materialdatetimepicker:4.0.1'

И вдруг, когда я синхронизирую свой Graddle, он выдаёт мне эту ошибку

Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:10:5-53:19 to override.

И даже если я добавлю это предложение в свой Манифест

<?xml version="1.0" encoding="utf-8"?>
   <manifest xmlns:android="http://schemas.android.com/apk/res/android"    
   xmlns:tools="http://schemas.android.com/tools"
   package="com.itt.ceatm">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    tools:replace="android:appComponentFactory"> // HERE
    <activity...

Я не могу это сделать, потому что теперь я получаю эту ошибку

Manifest merger failed with multiple errors, see logs

Вот мой полный Манифест

apply plugin: 'com.android.application'

android {
compileSdkVersion 28
defaultConfig {
    applicationId "com.itt.ceatm"
    minSdkVersion 19
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner 
"android.support.test.runner.AndroidJUnitRunner"
    android.defaultConfig.vectorDrawables.useSupportLibrary = true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
'proguard-rules.pro'
    }
 }
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:support-vector-drawable:28.0.0'
implementation 'com.mikhaellopez:circularimageview:3.2.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
implementation 'com.github.ganfra:material-spinner:2.0.0'

implementation 'com.wdullaer:materialdatetimepicker:4.0.1' //NEW LIBRARY

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'}

Есть советы?Я уже провёл исследование, пытаясь сделать работу вокруг, включая блочный код configureall и другие, но безуспешно.Я застрял

Или было бы желательно получить еще одну рекомендацию библиотеки для DatePicker с дизайном материала.

РЕДАКТИРОВАТЬ - РЕШЕНИЕ: Спасибо всем, кстати. Так что понижение версии библиотеки было в порядке, но тогда это дало мне эту ошибку

Ошибка поддержки различных версий (из-за моего уровня я не могу выразить это напрямую, извините)

Затем я провел исследование и добавил эти 2 новые реализации

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:support-vector-drawable:28.0.0'

implementation 'com.android.support:support-v13:28.0.0' //THIS
implementation 'com.android.support:support-media-compat:28.0.0' //AND THIS

implementation 'com.mikhaellopez:circularimageview:3.2.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
implementation 'com.github.ganfra:material-spinner:2.0.0'

implementation "com.wdullaer:materialdatetimepicker:3.6.4"

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'}

И тогда я смог использовать библиотеку без ошибок

Еще раз спасибо всем!

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

средство выбора даты имеет androidx в качестве зависимости.понижение до версии 3.6.4 приведет к тому, что оно снова будет зависеть от android.support - или обновит ваше приложение до использования androidx.см. выпуск 543 .

// https://mvnrepository.com/artifact/com.wdullaer/materialdatetimepicker
implementation "com.wdullaer:materialdatetimepicker:3.6.4"

^ это был бы самый простой способ исправить конфликтующие зависимости.

0 голосов
/ 28 октября 2018

Вы получаете эту ошибку, потому что импортируемая вами библиотека основана на androidx, что является существенным улучшением используемых вами библиотек поддержки.

Теперь у вас есть три решения:

  1. Используйте другую библиотеку выбора даты, основанную на предыдущих версиях поддержки (рекомендуется и лучше всего).

  2. Измените ваши библиотеки поддержки на androix.(Рекомендуется, но сложно)

  3. Добавить инструменты игнорирования (Простой выход)

Вот ссылка, которую я нашел: Выбор даты

implementation 'com.github.Kunzisoft:Android-SwitchDateTimePicker:2.0'
...