添加 material 依赖项时合并清单错误
merge manifest error when add material dependency
添加时
implementation 'com.google.android.material:material:1.1.0-alpha10'
在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.1.0-rc03] AndroidManifest.xml:24:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:10:5-36:19 to override.
并且在清单文件中添加 tools:replace="android:appComponentFactory"
时,出现另一个错误
新的错误消息是:Manifest merger failed with multiple errors, see logs
我的 geadle 文件:
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.saat.ali.hozorghiab"
minSdkVersion 21
targetSdkVersion 28
versionCode 6
versionName '1.6'
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:support-v4:28.0.0'
implementation 'android.arch.lifecycle:extensions:1.1.1'
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
//implementation 'com.android.support:appcompat-v7:26.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
implementation 'com.android.support:design:28.0.0'
androidTestImplementation 'junit:junit:4.12'
implementation 'com.github.florent37:materialtextfield:1.0.7'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.google.android.material:material:1.1.0-alpha10'
implementation 'com.github.ittianyu:BottomNavigationViewEx:2.0.4'
//testImplementation 'org.testng:testng:6.9.6'
}
尝试迁移到 AndroidX,为此转到重构 -> 迁移到 AndroidX,关于清单合并的大部分问题都随着 AndroidX 消失了。
最棒的是迁移非常安全,迁移我的项目从来没有任何问题。
检查 Material 组件库的 official doc:
If your app currently depends on the original Design Support Library, you can make use of the Refactor to AndroidX… option provided by Android Studio. Doing so will update your app's dependencies and code to use the newly packaged androidx
and com.google.android.material
libraries.
If you don't want to switch over to the new androidx
and com.google.android.material
packages yet, you can use Material Components via the com.android.support:design:28.0.0
dependency.
Note: You should not use the com.android.support
and com.google.android.material
dependencies in your app at the same time.
您必须使用 AndroidX 库。
添加时
implementation 'com.google.android.material:material:1.1.0-alpha10'
在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.1.0-rc03] AndroidManifest.xml:24:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:10:5-36:19 to override.
并且在清单文件中添加 tools:replace="android:appComponentFactory"
时,出现另一个错误
新的错误消息是:Manifest merger failed with multiple errors, see logs
我的 geadle 文件:
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.saat.ali.hozorghiab"
minSdkVersion 21
targetSdkVersion 28
versionCode 6
versionName '1.6'
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:support-v4:28.0.0'
implementation 'android.arch.lifecycle:extensions:1.1.1'
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
//implementation 'com.android.support:appcompat-v7:26.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
implementation 'com.android.support:design:28.0.0'
androidTestImplementation 'junit:junit:4.12'
implementation 'com.github.florent37:materialtextfield:1.0.7'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.google.android.material:material:1.1.0-alpha10'
implementation 'com.github.ittianyu:BottomNavigationViewEx:2.0.4'
//testImplementation 'org.testng:testng:6.9.6'
}
尝试迁移到 AndroidX,为此转到重构 -> 迁移到 AndroidX,关于清单合并的大部分问题都随着 AndroidX 消失了。 最棒的是迁移非常安全,迁移我的项目从来没有任何问题。
检查 Material 组件库的 official doc:
If your app currently depends on the original Design Support Library, you can make use of the Refactor to AndroidX… option provided by Android Studio. Doing so will update your app's dependencies and code to use the newly packaged
androidx
andcom.google.android.material
libraries.If you don't want to switch over to the new
androidx
andcom.google.android.material
packages yet, you can use Material Components via thecom.android.support:design:28.0.0
dependency.Note: You should not use the
com.android.support
andcom.google.android.material
dependencies in your app at the same time.
您必须使用 AndroidX 库。