我还有下一年级
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
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.android.material:material:1.0.0-rc01'
}
但当我想要构建应用程序时,我得到下一个日志:
Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0-alpha3] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0-alpha3] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-19: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="ru.chopcode.myapplication">
<application
tools:replace="android:appComponentFactory"
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">
</application>
</manifest>
然后我在我的Logcat中得到这个错误:
Manifest merger failed with multiple errors, see logs that I have Linked with it
创建新项目并比较构建。并替换了所有Gradle文件
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.1'
与其他依赖项相同的是在一个新项目中
就像这样
implementation 'androidx.appcompat:appcompat:1.0.0-alpha3'
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
implementation 'androidx.core:core-ktx:1.0.0-alpha3'
然后固定导入在kotlin文件中使用androidx。
把机器人移走。支持依存关系
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
引用材料指南
如果你还不想切换到新的androidx和com.google.android.material包,你可以通过com.android.support:design:28.0.0-alpha3依赖使用Material Components。
注意:你不应该在你的应用程序中同时使用com.android.support和com.google.android.dependencies。
仅仅删除这个依赖就可以了
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
这是一个完整的依赖示例
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.android.material:material:1.0.0-beta01'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
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'
}
失败原因
你正在使用材料库,这是AndroidX的一部分。
如果你不了解AndroidX,请仔细阅读这个答案。
一个应用程序应该使用AndroidX或旧的Android Support库。
这就是为什么你要面对这个问题。
例如:
在你的gradle中,你正在使用
com.android。appcompat-v7(旧的Android支持库的一部分)
com.google.android。material:material (AndroidX的一部分)(com.android.support:design的AndroidX构建工件)
解决方案
所以解决方案是使用AndroidX或旧的支持库。我建议使用AndroidX,因为Android在28.0.0版本之后将不会更新支持库。参见支持库的发布说明。
只需迁移到AndroidX。以下是我对迁移到AndroidX的详细回答。我把答案的必要步骤写在这里。
在迁移之前,强烈建议备份您的项目。
现有的项目
Android Studio >重构菜单>迁移到AndroidX…
它将分析并在底部打开折射窗口。接受要完成的更改。
新项目
把这些标志放在gradle.properties中
android.enableJetifier=true
android.useAndroidX=true
检查@Library映射是否有相等的AndroidX包。
查看“迁移到AndroidX”的官方页面
什么是Jetifier?
1.在app/build.gradle的末尾添加了这些代码:
configurations.all {
resolutionStrategy.force 'com.android.support:support-v4:28.0.0'
// the above lib may be old dependencies version
}
2.修改sdk和tools版本至28:
compileSdkVersion 28
buildToolsVersion '28.0.3'
targetSdkVersion 28
3.在你的AndroidManifest.xml文件中,你应该添加两行:
<application
android:name=".YourApplication"
android:appComponentFactory="AnyStrings"
tools:replace="android:appComponentFactory"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:largeHeap="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
或者简单地
进入Refactor (Studio -> Menu -> Refactor)
单击“迁移到AndroidX”。它的工作
这是工作。