web-dev-qa-db-ja.com

マニフェストのマージに失敗しました:属性application @ appComponentFactory

すべて良いのですが、このライブラリを追加しようとしています https://github.com/wdullaer/MaterialDateTimePicker これで

implementation 'com.wdullaer:materialdatetimepicker:4.0.1'

そして、突然Gradleを同期すると、このエラーが発生します

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

そして、エラーなくライブラリを使用することができました

どうもありがとう!

7
Angel R

日付ピッカーには、依存関係としてandroidxがあります。バージョン3.6.4にダウングレードすると、再びAndroid.supportに依存するようになります-またはandroidxを使用するようにアプリをアップグレードします。 issue 54 を参照してください。

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

^これは、競合する依存関係を修正する最も簡単な方法です。

4
Martin Zeitler

インポートしているライブラリはandroidxに基づいているため、このエラーが発生しています。これは、使用しているサポートライブラリの大幅な改善です。

次の3つのソリューション:

  1. 以前のサポートバージョンに基づく別の日付選択ライブラリを使用します(推奨される最良の方法)。

  2. サポートライブラリをandroixに変更します。 (推奨されているが難しい)

  3. 無視ツールを追加する(簡単な方法)

ここに私が見つけたリンクがあります: Date Picker

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