android gradle合并,android – 无法合并dex gradle 3.0.1

我是Android编程和StackOverflow的新手.我查看了规则并已经搜索了互联网和其他StackOverflow帖子,但似乎没有什么能解决我的问题.

我想做什么

我正在从网站上抓新闻文章,我想要使用这些库:

> JSoup

> RetroFit

> GSON

问题

当我尝试将应用程序安装到我的Android设备时,它失败并出现以下错误:

Error:Execution failed for task ‘:app:transformDexArchiveWithExternalLibsDexMergerForDebug’.

java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

我从互联网和其他StackOverflow帖子尝试了什么

>尝试添加multiDexEnabled trueto我的应用程序级gradle文件

>添加了这个库实现’com.android.support:multidex:1.0.3′

>将此添加到我的清单文件android:name =“android.support.multidex.MultiDexApplication”

>尝试将所有库更新到最新版本.

>尝试清理和重建项目

>尝试清理,使缓存无效并重新启动

>注释掉GSON导入并尝试使用从其他模块导入的GSON

>为所有人强制推出GSON版本

这是gradle信息日志输出:

* Exception is:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.

at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)

at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)

at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)

at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)

at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)

at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)

at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)

at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)

at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)

at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)

at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)

at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)

at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)

at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)

at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)

at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)

at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)

at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)

at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)

at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)

at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)

at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)

at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)

at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)

at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)

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)

Caused by: java.lang.RuntimeException: java.io.IOException: Can't write [/Users/kim/Documents/Android-Studio-Projects/app/build/intermediates/multi-dex/debug/componentClasses.jar] (Can't read [/Users/kim/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.2/3edcfe49d2c6053a70a2a47e4e1c2f94998a49cf/gson-2.8.2.jar(;;;;;;**.class)] (Duplicate zip entry [gson-2.8.2.jar:com/google/gson/annotations/Expose.class]))

at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55)

at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104)

at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:213)

at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)

at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:173)

at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)

at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)

at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)

at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)

at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)

at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)

at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)

at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)

at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)

... 27 more

Caused by: java.io.IOException: Can't write [/Users/kim/Documents/Android-Studio-Projects/app/build/intermediates/multi-dex/debug/componentClasses.jar] (Can't read [/Users/kim/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.2/3edcfe49d2c6053a70a2a47e4e1c2f94998a49cf/gson-2.8.2.jar(;;;;;;**.class)] (Duplicate zip entry [gson-2.8.2.jar:com/google/gson/annotations/Expose.class]))

at proguard.OutputWriter.writeOutput(OutputWriter.java:187)

at proguard.OutputWriter.execute(OutputWriter.java:79)

at proguard.ProGuard.writeOutput(ProGuard.java:427)

at proguard.ProGuard.execute(ProGuard.java:175)

at com.android.build.gradle.internal.transforms.BaseProguardAction.runProguard(BaseProguardAction.java:61)

at com.android.build.gradle.internal.transforms.MainDexListTransform.shrinkWithProguard(MainDexListTransform.java:232)

at com.android.build.gradle.internal.transforms.MainDexListTransform.transform(MainDexListTransform.java:184)

at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:222)

at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:218)

at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)

... 39 more

Caused by: java.io.IOException: Can't read [/Users/kim/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.2/3edcfe49d2c6053a70a2a47e4e1c2f94998a49cf/gson-2.8.2.jar(;;;;;;**.class)] (Duplicate zip entry [gson-2.8.2.jar:com/google/gson/annotations/Expose.class])

at proguard.InputReader.readInput(InputReader.java:188)

at proguard.InputReader.readInput(InputReader.java:158)

at proguard.OutputWriter.writeOutput(OutputWriter.java:176)

... 48 more

Caused by: java.io.IOException: Duplicate zip entry [gson-2.8.2.jar:com/google/gson/annotations/Expose.class]

at proguard.io.JarWriter.getOutputStream(JarWriter.java:138)

at proguard.io.FilteredDataEntryWriter.getOutputStream(FilteredDataEntryWriter.java:106)

at proguard.io.FilteredDataEntryWriter.getOutputStream(FilteredDataEntryWriter.java:106)

at proguard.io.FilteredDataEntryWriter.getOutputStream(FilteredDataEntryWriter.java:92)

at proguard.io.ClassRewriter.read(ClassRewriter.java:68)

at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)

at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)

at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)

at proguard.io.JarReader.read(JarReader.java:65)

at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)

at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)

at proguard.InputReader.readInput(InputReader.java:184)

... 50 more

最后这是我的app gradle文件:

apply plugin: 'com.android.application'

android {

compileSdkVersion 27

defaultConfig {

applicationId "kim.learning.webscrape"

minSdkVersion 15

targetSdkVersion 27

versionCode 1

versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

vectorDrawables.useSupportLibrary= true

multiDexEnabled true

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

configurations.all {

resolutionStrategy.force 'com.google.code.findbugs:jsr305:2.0.1'

}

}

dependencies {

implementation fileTree(include: ['*.jar'], dir: 'libs')

implementation 'com.android.support:appcompat-v7:27.1.0'

implementation 'com.android.support:multidex:1.0.3'

implementation 'com.android.support:design:27.1.0'

implementation 'com.android.support.constraint:constraint-layout:1.0.2'

implementation 'com.android.support:support-vector-drawable:27.1.0'

testImplementation 'junit:junit:4.12'

implementation 'org.jsoup:jsoup:1.11.2'

// Retrofit

implementation 'com.squareup.retrofit2:retrofit:2.3.0'

// JSON Parsing

implementation 'com.google.code.gson:gson:2.8.2'

implementation 'com.squareup.retrofit2:converter-gson:2.3.0'

}

我正在使用Gradle 3.0.1

如果有人可以帮助我会非常感激!我一直在摸不着头脑.

谢谢大家

更新1

当我注释掉GSON导入时,我得到这个错误:

What went wrong:

Execution failed for task ‘:app:transformClassesWithMultidexlistForDebug’.

java.io.IOException: Can’t write [/Users/kim/Documents/Android-Studio-Projects/app/build/intermediates/multi-dex/debug/componentClasses.jar] (Can’t read [/Users/kim/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.7/751f548c85fa49f330cecbb1875893f971b33c4e/gson-2.7.jar(;;;;;;**.class)] (Duplicate zip entry [gson-2.7.jar:com/google/gson/annotations/Expose.class]))

更新2

我强迫gradle使用一个版本的gson但得到错误:

configurations.all {

resolutionStrategy.force 'com.google.code.findbugs:jsr305:2.0.1'

resolutionStrategy.force 'com.google.code.gson:gson:2.8.2'

}

Execution failed for task ‘:app:transformClassesWithMultidexlistForDebug’.

java.io.IOException: Can’t write [/Users/kim/Documents/Android-Studio-Projects/app/build/intermediates/multi-dex/debug/componentClasses.jar] (Can’t read [/Users/kim/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.2/3edcfe49d2c6053a70a2a47e4e1c2f94998a49cf/gson-2.8.2.jar(;;;;;;**.class)] (Duplicate zip entry [gson-2.8.2.jar:com/google/gson/annotations/Expose.class]))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值