更新到 Android Studio 3.5 gradle 后无法构建。原因是古老而众所周知的,但从来都不是整个构建失败的原因:Hamcrest 和 JUnit 的重复类。
在模块 hamcrest-core-1.1.jar (org.hamcrest:hamcrest-core:1.1) 和 junit-4.10.jar (junit:junit:4.10) 中发现重复的类 org.hamcrest.BaseMatcher
(还有更多的类)
关键是我从未听说过 Hamcrest 和 JUnit 大约在一年前甚至更长时间之前从我的项目中删除,正如您所看到的,错误描述中提到的 libs 版本也很旧。我能用这个做什么?
下面我将描述我所做的所有活动:
清理和重建项目,在项目中寻找 Hamcrest 和 JUnit 出现 - 什么都没有!
删除projecthome/.gradle和projecthome/.idea(结果 - 将它们的总大小从 67,5 MB 减少到 6 MB)。
以下文件不断在“/.idea/libraries”文件夹中重新创建:
Gradle__org_hamcrest_hamcrest_core_1_1_jar
Gradle__junit_junit_4_10_jar
Run Code Online (Sandbox Code Playgroud)
删除userhome/.gradle/caches(唯一的结果:将文件夹大小从 ~800 MB 减少到 323 MB)。
使 Android Studio 中的缓存/重启选项无效。
总共点 2-4。
降级到'com.android.tools.build:gradle:3.4.2'。
一切都没有改变。请帮忙。
编辑:
org.gradle.execution.MultipleBuildFailures: Build completed with 1 failures.
at org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:386)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
at …
Run Code Online (Sandbox Code Playgroud) 在android update 3.4之前,我的应用程序运行正常,但是在android升级后,我的应用程序出现合并错误:
"Duplicate class android.support.v4.app.INotificationSideChannel"
android update 3.4
upgrade gradle 5.1.1
upgrade sdk
Error:
Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
Duplicate class android.support.v4.graphics.drawable.IconCompatParcelizer found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
Duplicate class android.support.v4.os.IResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar …
Run Code Online (Sandbox Code Playgroud) 我目前正在处理ionic4应用程序,但是最近在向应用程序添加https://ionicframework.com/docs/native/fcm插件后,在android reall设备上构建该应用程序时,它停止了工作。
起初它抱怨结构密钥,但是我从来没有打算在我的应用程序上使用结构崩溃解决。
错误日志:
* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
> 1 exception was raised by workers:
java.lang.RuntimeException: Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.IResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.1.1)
Duplicate class …
Run Code Online (Sandbox Code Playgroud) 在以下模块中找到了重复的类org.hamcrest.BaseDescription类:hamcrest-all-1.3.jar(org.hamcrest:hamcrest-all:1.3),hamcrest-core-1.3.jar(org.hamcrest:hamcrest-core:1.3)和mockito-all-2.0.2-beta.jar(org.mockito:mockito-all:2.0.2-beta)
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.core:core-ktx:1.0.1'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'org.mockito:mockito-all:2.0.2-beta'
androidTestImplementation "org.hamcrest:hamcrest-all:1.3"
androidTestImplementation 'androidx.test:core:1.1.0'
androidTestImplementation 'androidx.test:rules:1.1.1'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
Run Code Online (Sandbox Code Playgroud)