【问题标题】:Unable to create debug or signed apk无法创建调试或签名的 apk
【发布时间】:2020-03-22 14:52:27
【问题描述】:

由于我无法通过Android Studio 创建apk,任何人都可以指导我解决这个问题吗?请……

错误:程序类型已存在:kotlin.StandardKt__SynchronizedKt

> Task :app:multiDexListDebug FAILED
Task :app:multiDexListDebug in app Finished
:app:multiDexListDebug (Thread[Daemon worker Thread 2,5,main]) completed. Took 2.62 secs.
AAPT2 aapt2-3.5.2-5435860-linux Daemon #0: shutdown

FAILURE:构建失败并出现异常。

* What went wrong:
Execution failed for task ':app:multiDexListDebug'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Error while merging dex archives: 
     Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
     Program type already present: kotlin.StandardKt__SynchronizedKt

**STACK TRACE**

 * Exception is:


org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:multiDexListDebug'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:151)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:148)
        at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:141)
        at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
        at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
        at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:73)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)

尝试过的场景:

  • 启用multidex true
  • 添加了依赖Multidex 2.0.1(android x)
  • 试过cleaningrebuild项目

  • 尝试从主要项目中排除org.jetbrains.kotlin

    implementation (project(':ProjectName')){ exclude group:'org.jetbrains.kotlin' ,module:'kotlin-stdlib' }

  • 尝试使用 api , runtimeOnly

【问题讨论】:

  • 开发人员指南说这是由于您的项目中的模块或库使用不同的 sdk 版本而发生的。检查此解决方案:developer.android.com/studio/build/…
  • 您是否也在清单文件中提到了 android:name="android.support.multidex.MultiDexApplication"?
  • @Sandeepdhiman 是的
  • 确保您没有使用两个版本的谷歌服务。
  • @Bunny 检查两者是否相同

标签: android android-studio gradle build gradle-kotlin-dsl


【解决方案1】:

在应用级别的 build.gradle 中提到:

defaultConfig {
             minSdkVersion 14 //lower than 14 doesn't support multidex
             targetSdkVersion 22

             // Enabling multidex support.
             multiDexEnabled true
         }

【讨论】:

  • 感谢您的回复。它已经添加到应用程序 gradle 中。我也使用了 Multi dex 依赖项,但仍然无法创建任何构建调试或签名
【解决方案2】:

似乎存在冲突依赖关系(导致重复)。这通常发生在内部使用的依赖项。大多数情况下,gradle 通过选择更新版本的依赖来处理这个错误。可能的解决方案;

1- 关注the steps and determine duplicated class locationthen exclude duplicated dependencies

2- 手动删除最近添加的依赖项并确定导致错误的原因,然后尝试更新或旧版本。

【讨论】:

  • Yalcin Kuru 谢谢它似乎有效。但是得到了一个新的错误: 原因:java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
  • @Gulshan 确保您只排除了重复的课程。如果该部分没问题,那么您需要确保您已排除旧版本。这个类在旧版本中可能不可用
  • Yalcin Kuru 下面是我所做的修改添加:configurations.all { exclude group:"org.jetbrains.kotlin" ,module:"kotlin-stdlib" } 使用这个排除组“org.jetbrains.kotlin:kotlin-stdlib”的订单版本,现在我包含了新版本,即实现“org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version”错误:原因:java.lang .ClassNotFoundException: kotlin.jvm.internal.Intrinsics
  • @Gulshan 我认为configurations.all 不包括所有模块,但无论如何你需要它对吗?所以尝试 implementation('com.example.m:m:1.0') { exclude group: 'org.unwanted', module: 'x }
  • Yalcin Kuru 是的,我想我不需要configuration.all 我试过implementation('com.example.m:m:1.0') { exclude group: 'org.unwanted', module: 'x } 更多细节 Error: kotlin.StandardKt__SynchronizedKt 这个文件存在于这个org.jetbrains.kotlin:kotlin 中。我尝试从所有具有它的实现中排除它。但仍然无法创建构建。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-28
相关资源
最近更新 更多