The*_*sar 42 android libraries android-studio android-gradle-plugin androidx
我最近更新了我的Android Studio(并且我非常确定Gradle版本),现在在尝试编译项目时遇到了很多错误。这是目前困扰我的那个:
Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.1) and classes.jar (com.android.support:support-compat:26.1.0)
其次是很多类似的。
我尝试删除所有com.android.support有利于androidx的使用(有关使用替换事物的信息,请参见此处),但是com.android.support即使删除了库,库仍在使用中(一旦尝试再次编译,它们将被重新制作)。
这是我得到的全部错误的链接。
han*_*ach 86
希望您在gradle.properties以下两行中都有:
(如果您没有gradle.properties,则只需在项目的根目录中创建它)
android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)
看来support您的依赖项中的任何地方都有一些文物,也许形成了lib?要调查并查看依赖关系树,请运行
./gradlew :yourApp:dependencies
然后您会看到它的来历。
在您的应用程序中,build.gradle您混合使用了旧的支持库和新的支持库工件。从您的计算机中删除其中一个build.gradle以解决此问题。
旧工件: com.android.support:support-compat
对应的新工件: androidx.core:core:1.0.0
就像其他人说的,解决方案是迁移到 AndroidX,它对我有用。然而,这不是一个简单的方法,它需要一点耐心......这些是我所做的步骤:
首先,在不同的分支中进行所有这些更改或备份项目非常重要。
您需要安装 Android Gradle 插件版本 3.5.1。所以,在build.gradle 中:
dependencies {
classpath 'com.android.tools.build:gradle:3.5.1'
}
Run Code Online (Sandbox Code Playgroud)
当它完成时,它已经完成了所有相关的修改,但是你可能无法正确部署项目,因为你发现了任何错误。这些是我发现的问题和解决方案:
如果你使用Kotlin,在 build.gradle 中设置:
buildscript {
ext.kotlin_version = '1.3.10'
}
Run Code Online (Sandbox Code Playgroud)
和
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
Run Code Online (Sandbox Code Playgroud)
destination file("$reportsDir/checkstyle/checkstyle.xml")| 归档时间: |
|
| 查看次数: |
30333 次 |
| 最近记录: |