Android issues: (3 errors)
Program type already present: kotlinx.coroutines.experimental.EventLoopBase
Message{kind=ERROR,text=Program type already present: kotlinx.coroutines.experimental.EventLoopBase,sources=[Unknown source file],tool name=Optional.of(D8)}Program type already present: kotlinx.coroutines.experimental.internal.LockFreeLinkedListNode
Message{kind=ERROR,text=Program type already present: kotlinx.coroutines.experimental.internal.LockFreeLinkedListNode,tool name=Optional.of(D8)}Program type already present: kotlinx.coroutines.experimental.internal.LockFreeMPSCQueueCore
Message{kind=ERROR,text=Program type already present: kotlinx.coroutines.experimental.internal.LockFreeMPSCQueueCore,tool name=Optional.of(D8)}Java compiler: (4 errors)
Caused by: com.android.builder.dexing.DexArchiveBuilderException: @R_301_159@ to process /home/deepak/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core/0.25.0/5664ba2d20c6dcc88c912cc9666baa7f03203bcd/kotlinx-coroutines-core-0.25.0.jar
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
Caused by: com.android.tools.r8.Compilation@R_301_159@Exception: Compilation @R_301_159@ to complete
Caused by: com.android.tools.r8.utils.AbortException
下面是我的依赖和kotlin实验协同程序
dependencies { implementation fileTree(dir: 'libs',include: ['*.jar']) implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.0.0-rc01' implementation 'androidx.constraintlayout:constraintlayout:1.1.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.1.0-alpha4' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4' implementation 'org.jetbrains.anko:anko:0.10.5' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:0.25.0' implementation 'com.android.support:design:28.0.0-rc01' } kotlin { experimental { coroutines "enable" } }
解决方法
版本0.25.0以multi-release JAR的形式发货,这样的JAR打破了除最新的alpha版本之外的所有Android工具.此更改已在版本0.25.3中恢复,因此更新kotlinx.coroutines版本和使缓存无效就足以解决问题.