由于“多个dex文件定义”,Android Studio 3.5.2项目生成问题 [英] Android Studio 3.5.2 Project Build Problem because of "Multiple dex files define"

查看:142
本文介绍了由于“多个dex文件定义”,Android Studio 3.5.2项目生成问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近接手了一个Android Studio项目的工作,该项目的活跃开发已在18个月前的2018年7月停止。



我已经能够构建调试版本产品,但不发布。该构建未能尝试构建我今天添加的新productFlavor。这是构建错误:

 多个dex文件定义了Landroid / support / v13 / view / inputmethod / InputConnectionCompat $ OnCommitContentListener; 

在与build中的gradle同步后,为App模块评分,创建了新的构建变体。当我选择newFlavorDebug时,出现上述错误。我可以回到localhost风格,并且仍然可以构建localhostDebug并将其发送到仿真器以运行。但是,在经历了许多问题和答案之后,其中一个建议建立->清洁项目,现在我无法构建任何样式。



我已经有了一些东西尝试从其他答案中进行尝试:




  • 我已在android {}块中添加到我的应用程序build.gradle中:



  dexOptions {
preDexLibraries = false
}




  • 我已经在android defaultConfig中添加了



  multiDexEnabled true 

这两个都没有帮助了。



在上述问题上,我发现了很多变体,但以上回答却无济于事。



这是我的应用程序build.gradle中的配置和依赖项块:

  // 2019-11-21 -由于构建期间的错误而添加了此内容:java.lang.RuntimeException:com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复项:android / support / v13 / view / DragAndDropPermissionsCompat.class 
//本文建议v4-https://stackoverflow.com/questions/26966843/java-util-zip-zipexception-duplicate-entry-during-packagealldebugclassesformult
//本文建议v13,但得到了错误错误:程序包android.support.v13.app不存在-https://stackoverflow.com/questions/49553021/program-type-already-present-android-support-v13-view-draganddroppermissionscom
//本文,第二个答案,建议检查模块build.gradle中的重复依赖项-https://stackoverflow.com/questions/49553021/program-type-already-present-android-support-v13-view-draganddroppermissionscom
配置{
all * .exclude组:'com.android .support',模块:'support-v4'
}

依赖项{
编译fileTree(include:['* .jar'],dir:'libs')

//这是建议的,但没有用-https://stackoverflow.com/questions/29003114/android-build-fails-over-com-android-dex-dexexception-multiple-dex- files-define
//编译fileTree(dir:'libs',include:'* .jar',exclude:'android-support-*。jar')

// compile' com.braintreepayments.api:braintree:2. +'
//编译'cards.pay:paycardsrecognizer:1.0.0'
编译'cards.pay:paycardsrecognizer:1.1.0'
编译文件('src / libs / mint-5.2.2.jar')
编译'com.pddstudio:urlshortener:1.0.2'
编译'io.branch.sdk.android:library:2.14 .1'
编译'com.googlecode.libphonenumber:libphonenumber:7.7.2'
编译'com.github.twinkle942910:monthyearpicker:0.0.1'
编译'com.android.support:appcompat-v7:27.1.1'
编译'com.github.polok.routedrawer:library :1.0.0'
编译'com.github.bumptech.glide:glide:3.5.2'
编译'com.google.android.gms:play-services-gcm:12.0.0'
编译'com.android.support.constraint:约束布局:1.0.2'
编译'com.mikhaellopez:circularimageview:3.0.2'
编译'com.prolificinteractive:material-calendarview :1.4.3'
编译'cn.aigestudio.wheelpicker:WheelPicker:1.1.2'
实施'br.com.moip:credit-card-validator:0.0.6'
编译'com.wang.avi:library:2.1.3'
编译'com.karumi:dexter:4.1.0'
编译'com.squareup.picasso:picasso:2.5.2'
编译'com.wdullaer:materialdatetimepicker:3.2.2'
编译'com.sothree.slidinguppanel:library:3.3.1'
编译'com.squareup.okhttp:okhttp:2.5.0'
编译'org.sufficientlysecure:h tml-textview:3.5'
编译'com.android.support:cardview-v7:27.1.1'
编译'com.android.support:support-v4:27.1.1'
编译'com.android.support:recyclerview-v7:27.1.1'
编译'com.android.support:design:27.1.1'
编译'com.google.android.gms:play- services:12.0.0'
编译'com.google.android.gms:play-services-maps:12.0.0'
编译'com.jaredrummler:material-spinner:1.1.0'
编译'com.google.firebase:firebase-messaging:12.0.0'
编译'com.facebook.stetho:stetho:1.5.0'
编译'com.amitshekhar.android:debug- db:1.0.1'
编译'com.intuit.sdp:sdp-android:1.0.5'
编译'com.squareup.retrofit2:retrofit:2.1.0'
编译' com.google.code.gson:gson:2.8.1'
编译'com.squareup.okhttp3:logging-interceptor:3.4.1'
编译'com.squareup.retrofit2:converter-gson: 2.0.2'
compile'io.card:android-sdk:5.5.1'
compile'c​​om.github.zcweng:switch-button:0.0 .3 @ aar'
编译'io.github.luizgrp.sectionedrecyclerviewadapter:sectionedrecyclerviewadapter:1.0.4'
//编译'com.android.support:multidex:1.0.2'
}
应用插件:'com.google.gms.google-services'

请注意:

 编译'com.android.support:appcompat-v7:27.1.1'

收到警告,某些内容要求版本27.1.1、26.1.0和25.3.1。



我已经从Android Studio终端使用此命令来查看依赖项列表:

  ./ gradlew -q:app:dependencies 

似乎 https://github.com/polok/RouteDrawer 是26.1.0的依赖源,但它是代码库过去5年没有更新:

  + --- com.github.polok.routedrawer:library:1.0.0 
| + --- com.google.code.gson:gson:2.3-> 2.8.1
| + --- com.netflix.rxjava:rxjava-android:0.20.6
| | \ --- com.netflix.rxjava:rxjava-core:0.20.6
| + --- com.squareup.okhttp:okhttp:2.0.0-> 2.5.0
| | \--com.squareup.okio:okio:1.6.0-> 1.9.0
| + --- com.android.support:appcompat-v7:21.0.0-> 27.1.1(*)
| + --- com.google.android.gms:play-services:6.1.11-> 12.0.0
| | + --- com.google.android.gms:play-services-ads:12.0.0

(行已删除)

| | + --- com.google.android.gms:play-services-cast-framework:12.0.0
| | | + --- com.google.android.gms:play-services-base:12.0.0(*)
| | | + --- com.google.android.gms:play-services-cast:12.0.0
| | | | + --- com.google.android.gms:play-services-base:12.0.0(*)
| | | | + --- com.google.android.gms:play-services-basement:12.0.0(*)
| | | | + --- com.google.android.gms:play-services-tasks:12.0.0(*)
| | | | + --- com.android.support:mediarouter-v7:26.1.0
| | | | | + --- com.android.support:appcompat-v7:26.1.0-> 27.1.1(*)
| | | | | \ --- com.android.support:palette-v7:26.1.0
| | | | | + --- com.android.support:support-compat:26.1.0-> 27.1.1(*)
| | | | | \ --- com.android.support:support-core-utils:26.1.0-> 27.1.1(*)
| | | | \ --- com.google.android.gms:play-services-cast-license:12.0.0

不建议使用许多编译警告,而需要将其替换为实现。



任务5/5失败了:

 : app:transformDexArchiveWithExternalLibsDexMergerForDemo_webmillDebug 1 s 996 ms 
执行任务动作1/5 for:app:transformDexArchiveWithExternalLibsDexMergerForDemo_webmillDebug
执行任务动作2/5 for:app:transformDexbbsExbEbFor_ExecutiveExternalLibers :transformDexArchiveWithExternalLibsDexMergerForDemo_webmillDebug
对:app:transformDexArchiveWithExternalLibsDexMergerForDemo_webmillDebug执行任务4/5对于1:app:transformDexArchiveWithExternalLibsDexMergerForDemo_webmillDebug 1 ms
对于5:app:transformDexArchiveWithExternalLibsDerMerger code $ c $ Web $ c / pre>

以下是我在任务操作5.5中遇到的错误示例:



错误:

  org.gradle.api.tasks.TaskExecutionException:任务':app:transformDexArchiveWithExternalLibsDexMergerForDemo_webmillDebug'的执行失败。在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)处的
在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter。 java:70)org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)的
org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter的
。 execute(ResolveTaskOutputCachingStateExecuter.java:54)
在org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
在org.gradle.api.internal.tasks。 execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
在org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
在org.gradle。 internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute (SkipTaskWithNoActionsExecuter.java:52)
在org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
在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)
在org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
在org.gradle.internal。 progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
在org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
在org.gradle.internal.progress。 Defaul tBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
在org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
在org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
在org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
在org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.access $ 200(DefaultTaskPlanExecutor.java:80)
在org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1.execute(DefaultTaskPlanExecutor.java:105)在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.t askgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
在org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)在org.gradle.internal.concurrent上的
。 ExecutorPolicy $ CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
在org.gradle.internal.concurrent.ManagedExecutorImpl $ 1.run(ManagedExecutorImpl.java:46)
在java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)
在org.gradle.internal.concurrent.ThreadFactoryImpl $ ManagedThreadRunnable.run(ThreadFactoryImpl .java:55)java.lang.Thread.run(Thread.java:748)
原因:java.lang.RuntimeException:java.lang.RuntimeException:com.android.builder.dexing .DexArchiveMergerException:无法在sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native方法)$ b $合并dex
b在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
在java.lang.reflect.Constructor.newInstance( Constructor.java:423)java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593)
java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677)
$ b在java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:720)
在java.util.ArrayList.forEach(ArrayList.java:1257)
在com.android.builder.dexing .DxDexArchiveMerger.mergeMultidex(DxDexArchiveMerger.java:266)
在com.android.builder.dexing.DxDexArchiveMerger.mergeDexArchives(DxDexArchiveMerger.java:133)
在com.android.build.formle上。 .DexMergerTransformCallable.call(DexMergerTransformCallable.java:97)
在com.android.build.gradle.internal.transforms.ExternalLib sMergerTransform.transform(ExternalLibsMergerTransform.kt:121)
在com.android.build.gradle.internal.pipeline.TransformTask $ 2.call(TransformTask.java:222)
在com.android.build.gradle .internal.pipeline.TransformTask $ 2.call(TransformTask.java:218)
在com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
在com.android.build。 gradle.internal.pipeline.TransformTask.transform(TransformTask.java:213)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62 )
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在java.lang.reflect.Method.invoke(Method.java:498)
在org.gradle。 internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
在org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore $ IncrementalTask​​Action.doExecute(DefaultTaskClassInfoStore.java:173 )org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore $ StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)的
org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore $ StandardTaskAction的
.execute(DefaultTaskClassInfoStore.java:121)
在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter $ 1.run(ExecuteActionsTaskExecuter.java:122)
在org.gradle.internal.progress。 org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
在org.gradle的DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
,位于org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
,位于org.gradle.api.internal.tasks.execution。执行力uteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
... 30更多
引起原因:java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法在java.util.concurrent.ForkJoinTask $ AdaptedCallable.exec(ForkJoinTask.java:1431)
处合并dex
在java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
在java.util.concurrent.ForkJoinPool $ WorkQueue.runTask(ForkJoinPool.java:1056)
在java.util.concurrent .ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
原因:com.android.builder.dexing.DexArchiveMergerException:无法合并com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:72)的dex
com.android.builder.dexing.D的
exArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
at java.util.concurrent.ForkJoinTask $ AdaptedCallable.exec(ForkJoinTask.java:1424)
... 4更多
造成原因:com .android.dex.DexException:多个dex文件定义了Landroid / support / v13 / view / inputmethod / InputConnectionCompat $ OnCommitContentListener; com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)中的
com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)中的
在com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
在com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
在com.android .dx.merge.DexMerger.merge(DexMerger.java:198)
在com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
... 6更多


所以我一直在研究依赖项列表,并消除了对com的警告.android.support.appcompat-v7,但现在在mediarouter-v7上有一个警告。这是我最新的完整build.gradle文件:

 应用插件:'com.android.application'

android {
flavourDimensions默认

compileSdkVersion 27
buildToolsVersion '27 .0.3'
defaultConfig {
applicationId com.somedev.demoApp
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName 1.0
multiDexEnabled true
testInstrumentationRunner android.support.test.runner.AndroidJUnitRunner
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}

// 2019/11/21-尝试构建发布版本时引发了皮棉警告,其中皮棉建议添加此
lintOptions {
checkReleaseBuilds false
//或者,如果愿意,可以继续检查发布版本中的错误,
// //即使发现错误也继续进行构建:
abortOnError false
}

//这并没有解决:多个dex文件定义了Landroid / support / v13 / view / DragStartHelper $ OnDragStartListener;
dexOptions {
preDexLibraries = false
}


flavorDimensions服务器
productFlavors {

//这是在具有PHPStorm和Docker的MacBook上运行的风格
localhost {
维服务器
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName 1.0
buildConfigField'字符串','BASE_URL',' http://192.168.1.117:8081/api/'
buildConfigField'字符串','USER_PROFILE_URL',' http:// 192.168.1.117:8081/admin/file/'
buildConfigField'String','WEB_PORT',' 1738'
buildConfigField'String','COUNTRY_CODE',' +1'
buildConfigField'字符串','标志','我们'
buildConfigField'布尔值','isDevelopment','假'
}

//这是要针对在线服务器运行的版本
newFlavor {
维度服务器
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName 1.0
buildConfigField'String','BASE_URL',' http:// demo.mywww.com/api/'
buildConfigField'字符串','USER_PROFILE_URL',' http://demo.mywww.com/admin/file/'
buildConfigField'int', 'WEB_PORT','80'//似乎未使用...
buildConfigField'String','SERVER_URl',' 72.28.24.98'// //这似乎是服务器IP地址BASE_URL
buildConfigField'字符串','标志','我们'
buildConfigField'布尔值','isDevelopment','假'
}

}

}
allprojects {
储存库{
jcenter()
mavenCentral()
mavenLocal()
maven {url http ://pay.cards/maven}
}
}

// // 2019-11-21-由于er而添加了它在构建过程中出现错误:java.lang.RuntimeException:com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复项:android / support / v13 / view / DragAndDropPermissionsCompat.class
//本文建议使用v4-https://stackoverflow.com/questions/26966843/java-util-zip-zipexception-duplicate-entry-during-packagealldebugclassesformult
//本文建议使用v13,但出现错误错误:包android.support.v13.app不存在-https://stackoverflow.com/questions/49553021/program-type-already-present-android-support-v13-view-draganddroppermissionscom
//本文,第二个答案,建议检查模块build.gradle中的重复依赖项-https://stackoverflow.com/questions/49553021/program-type-already-present-android-support-v13-view-draganddroppermissionscom
配置{
all * .exclude组: com.android.support,模块: support-v4
}

依赖项{
编译fileTree(包括: ['* .jar'],目录:'libs')

//建议这样做,但不起作用-https://stackoverflow.com/questions/29003114/android-build-fails -over-com-android-dex-dexexception-multiple-dex-files-define
实现fileTree(dir:'libs',include:'* .jar',exclude:'android-support-*。jar' )

//编译'com.braintreepayments.api:braintree:2. +'
//编译'cards.pay:paycardsrecognizer:1.0.0'
实现'cards .pay:paycardsrecognizer:1.1.0'
实现文件('src / libs / mint-5.2.2.jar')
实现'com.pddstudio:urlshortener:1.0.2'
实现'io.branch.sdk.android:library:2.14.1'
实现'com.googlecode.libphonenumber:libphonenumber:7.7.2'
实现'com.github.twinkle942910:monthyearpicker:0.0。 1'


实现('com.github.polok.routedrawer:library:1.0.0'){
exclude module:'appcompat-v7'
exclude模块: mediarouter-v7
}
实施'com.android.support:mediarouter-v7:27.1.1'
实施'com.android.support:appcompat-v7:27.1.1'

实施('com.wdullaer:materialdatetimepicker:3.2.2'){
//排除模块:'mediarouter-v7'
}

实现'com.github.bumptech.glide :glide:3.5.2'
实现'com.google.android.gms:play-services-gcm:12.0.0'

实现'com.android.support.constraint:constraint -layout:1.0.2'
实现'com.mikhaellopez:circularimageview:3.0.2'
实现'com.prolificinteractive:material-calendarview:1.4.3'
实现'cn.aigestudio .wheelpicker:WheelPicker:1.1.2'
实现'br.com.moip:credit-card-validator:0.0.6'
实现'com.wang.avi:library:2.1.3'
实现'com.karumi:dexter:4.1.0'
实现'com.squareup.picasso:picasso:2.5.2'

实现'com.sothree.sli dinguppanel:library:3.3.1'
实现'com.squareup.okhttp:okhttp:2.5.0'
实现'org.sufficientlysecure:html-textview:3.5'
实现'com。 android.support:cardview-v7:27.1.1'
实现'com.android.support:support-v4:27.1.1'
实现'com.android.support:recyclerview-v7:27.1。 1'
实现'com.android.support:design:27.1.1'

实现'com.google.android.gms:play-services:12.0.0'

实现'com.google.android.gms:play-services-maps:12.0.0'
实现'com.jaredrummler:material-spinner:1.1.0'
实现'com。 google.firebase:firebase-messaging:12.0.0'
实现'com.facebook.stetho:stetho:1.5.0'
实现'com.amitshekhar.android:debug-db:1.0.1'
实现'com.intuit.sdp:sdp-android:1.0.5'
实现'com.squareup.retrofit2:retrofit:2.1.0'
实现'com.google.code。 gson:g son:2.8.1'
实现'com.squareup.okhttp3:logging-interceptor:3.4.1'
实现'com.squareup.retrofit2:converter-gson:2.0.2'
实现'io.card:android-sdk:5.5.1'
实现'com.github.zcweng:switch-button:0.0.3@aar'
实现'io.github.luizgrp.sectionedrecyclerviewadapter: sectionedrecyclerviewadapter:1.0.4'
//编译'com.android.support:multidex:1.0.2'
}
Apply插件:'com.google.gms.google-services'

无法解决我遇到的问题的文章:




解决方案

尝试以下内容:



将此代码块添加到您的 build.gradle 文件中

  dexOptions {
preDexLibraries = false
}

然后清理重建您的项目。


I recently took over work on an Android Studio project whose active development was stopped 18 months ago, in July 2018.

I have been able to build a debug version of the product, but not release. The build is failing on trying to build a new productFlavor that I added today. This is the build error:

Multiple dex files define Landroid/support/v13/view/inputmethod/InputConnectionCompat$OnCommitContentListener;

After syncing with the gradle in the build.,gradle for module App, new build variants are created. When I select the newFlavorDebug I get the above error. I could go back to the localhost flavor, and could still build localhostDebug, and send it to the emulator to run. However after going through many questions and answers, one of them suggesting a Build -> Clean Project, now I can not get any flavor to build.

Some things I have already tried from other answers:

  • I have added to my app build.gradle, within the android{} block:

 dexOptions {
        preDexLibraries = false
    }

  • I have added within the android defaultConfig

        multiDexEnabled true

Neither of these have helped.

I have found a lot of variations on this question, with the above answers, but they have not helped in my case.

Here is my configuration and dependency blocks from my app build.gradle:

// 2019-11-21 - Added this because of error during build: java.lang.RuntimeException: com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v13/view/DragAndDropPermissionsCompat.class
//    This article suggested v4 - https://stackoverflow.com/questions/26966843/java-util-zip-zipexception-duplicate-entry-during-packagealldebugclassesformult
//    This article suggested v13, but got error "error: package android.support.v13.app does not exist"  - https://stackoverflow.com/questions/49553021/program-type-already-present-android-support-v13-view-draganddroppermissionscom
//    This article, second answer, recommended checking duplicated dependencies in module build.gradle- https://stackoverflow.com/questions/49553021/program-type-already-present-android-support-v13-view-draganddroppermissionscom
configurations {
    all*.exclude group: 'com.android.support', module: 'support-v4'
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')

    // This was suggested but didn't work - https://stackoverflow.com/questions/29003114/android-build-fails-over-com-android-dex-dexexception-multiple-dex-files-define
    // compile fileTree(dir: 'libs', include: '*.jar', exclude: 'android-support-*.jar')

    //    compile 'com.braintreepayments.api:braintree:2.+'
//    compile 'cards.pay:paycardsrecognizer:1.0.0'
    compile 'cards.pay:paycardsrecognizer:1.1.0'
    compile files('src/libs/mint-5.2.2.jar')
    compile 'com.pddstudio:urlshortener:1.0.2'
    compile 'io.branch.sdk.android:library:2.14.1'
    compile 'com.googlecode.libphonenumber:libphonenumber:7.7.2'
    compile 'com.github.twinkle942910:monthyearpicker:0.0.1'
    compile 'com.android.support:appcompat-v7:27.1.1'
    compile 'com.github.polok.routedrawer:library:1.0.0'
    compile 'com.github.bumptech.glide:glide:3.5.2'
    compile 'com.google.android.gms:play-services-gcm:12.0.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.mikhaellopez:circularimageview:3.0.2'
    compile 'com.prolificinteractive:material-calendarview:1.4.3'
    compile 'cn.aigestudio.wheelpicker:WheelPicker:1.1.2'
    implementation 'br.com.moip:credit-card-validator:0.0.6'
    compile 'com.wang.avi:library:2.1.3'
    compile 'com.karumi:dexter:4.1.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.wdullaer:materialdatetimepicker:3.2.2'
    compile 'com.sothree.slidinguppanel:library:3.3.1'
    compile 'com.squareup.okhttp:okhttp:2.5.0'
    compile 'org.sufficientlysecure:html-textview:3.5'
    compile 'com.android.support:cardview-v7:27.1.1'
    compile 'com.android.support:support-v4:27.1.1'
    compile 'com.android.support:recyclerview-v7:27.1.1'
    compile 'com.android.support:design:27.1.1'
    compile 'com.google.android.gms:play-services:12.0.0'
    compile 'com.google.android.gms:play-services-maps:12.0.0'
    compile 'com.jaredrummler:material-spinner:1.1.0'
    compile 'com.google.firebase:firebase-messaging:12.0.0'
    compile 'com.facebook.stetho:stetho:1.5.0'
    compile 'com.amitshekhar.android:debug-db:1.0.1'
    compile 'com.intuit.sdp:sdp-android:1.0.5'
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.google.code.gson:gson:2.8.1'
    compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
    compile 'com.squareup.retrofit2:converter-gson:2.0.2'
    compile 'io.card:android-sdk:5.5.1'
    compile 'com.github.zcweng:switch-button:0.0.3@aar'
    compile 'io.github.luizgrp.sectionedrecyclerviewadapter:sectionedrecyclerviewadapter:1.0.4'
//    compile 'com.android.support:multidex:1.0.2'
}
apply plugin: 'com.google.gms.google-services'

Note that:

compile 'com.android.support:appcompat-v7:27.1.1'

is getting a warning that some things are asking for version 27.1.1, 26.1.0, and 25.3.1.

I have used this command from Android Studio terminal to see a dependency list:

./gradlew -q :app:dependencies 

It seems that https://github.com/polok/RouteDrawer is the source of dependency to 26.1.0, but it is a code base with no updates for the last 5 years:

+--- com.github.polok.routedrawer:library:1.0.0
|    +--- com.google.code.gson:gson:2.3 -> 2.8.1
|    +--- com.netflix.rxjava:rxjava-android:0.20.6
|    |    \--- com.netflix.rxjava:rxjava-core:0.20.6
|    +--- com.squareup.okhttp:okhttp:2.0.0 -> 2.5.0
|    |    \--- com.squareup.okio:okio:1.6.0 -> 1.9.0
|    +--- com.android.support:appcompat-v7:21.0.0 -> 27.1.1 (*)
|    +--- com.google.android.gms:play-services:6.1.11 -> 12.0.0
|    |    +--- com.google.android.gms:play-services-ads:12.0.0

(lines deleted)

|    |    +--- com.google.android.gms:play-services-cast-framework:12.0.0
|    |    |    +--- com.google.android.gms:play-services-base:12.0.0 (*)
|    |    |    +--- com.google.android.gms:play-services-cast:12.0.0
|    |    |    |    +--- com.google.android.gms:play-services-base:12.0.0 (*)
|    |    |    |    +--- com.google.android.gms:play-services-basement:12.0.0 (*)
|    |    |    |    +--- com.google.android.gms:play-services-tasks:12.0.0 (*)
|    |    |    |    +--- com.android.support:mediarouter-v7:26.1.0
|    |    |    |    |    +--- com.android.support:appcompat-v7:26.1.0 -> 27.1.1 (*)
|    |    |    |    |    \--- com.android.support:palette-v7:26.1.0
|    |    |    |    |         +--- com.android.support:support-compat:26.1.0 -> 27.1.1 (*)
|    |    |    |    |         \--- com.android.support:support-core-utils:26.1.0 -> 27.1.1 (*)
|    |    |    |    \--- com.google.android.gms:play-services-cast-license:12.0.0

And lots of warnings that compile is deprecated and needs to be replaced with implementation.

It is task 5/5 that is failing:

:app:transformDexArchiveWithExternalLibsDexMergerForDemo_webmillDebug   1 s 996 ms
  Execute task action 1/5 for :app:transformDexArchiveWithExternalLibsDexMergerForDemo_webmillDebug 
  Execute task action 2/5 for :app:transformDexArchiveWithExternalLibsDexMergerForDemo_webmillDebug 
  Execute task action 3/5 for :app:transformDexArchiveWithExternalLibsDexMergerForDemo_webmillDebug 
  Execute task action 4/5 for :app:transformDexArchiveWithExternalLibsDexMergerForDemo_webmillDebug 1 ms
  Execute task action 5/5 for :app:transformDexArchiveWithExternalLibsDexMergerForDemo_webmillDebug 1 s 945 ms

Here is an example of the error I get on task action 5.5:

Error:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDemo_webmillDebug'.
    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 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593)
    at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677)
    at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:720)
    at java.util.ArrayList.forEach(ArrayList.java:1257)
    at com.android.builder.dexing.DxDexArchiveMerger.mergeMultidex(DxDexArchiveMerger.java:266)
    at com.android.builder.dexing.DxDexArchiveMerger.mergeDexArchives(DxDexArchiveMerger.java:133)
    at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:97)
    at com.android.build.gradle.internal.transforms.ExternalLibsMergerTransform.transform(ExternalLibsMergerTransform.kt:121)
    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)
    at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:213)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    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)
    ... 30 more
Caused by: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
    at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1431)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
    at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:72)
    at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
    at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
    ... 4 more
Caused by: com.android.dex.DexException: Multiple dex files define Landroid/support/v13/view/inputmethod/InputConnectionCompat$OnCommitContentListener;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
    at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
    ... 6 more


So I have been working through the dependency list, and eliminated the warnings on com.android.support.appcompat-v7, but now there is a warning on mediarouter-v7. Here is my latest complete build.gradle file:

apply plugin: 'com.android.application'

android {
    flavorDimensions "default"

    compileSdkVersion 27
    buildToolsVersion '27.0.3'
    defaultConfig {
        applicationId "com.somedev.demoApp"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    // 2019/11/21 - trying to build a release build threw a lint warning, where lint suggested adding this
    lintOptions {
        checkReleaseBuilds false
        // Or, if you prefer, you can continue to check for errors in release builds,
        // but continue the build even when errors are found:
        abortOnError false
    }

    // This did not solve": Multiple dex files define Landroid/support/v13/view/DragStartHelper$OnDragStartListener;
    dexOptions {
        preDexLibraries = false
    }


    flavorDimensions "server"
    productFlavors {

        // This is the flavor that runs on MacBook with PHPStorm and Docker
        localhost {
            dimension "server"
            minSdkVersion 16
            targetSdkVersion 27
            versionCode 1
            versionName "1.0"
            buildConfigField 'String', 'BASE_URL', '"http://192.168.1.117:8081/api/"'
            buildConfigField 'String', 'USER_PROFILE_URL', '"http://192.168.1.117:8081/admin/file/"'
            buildConfigField 'String', 'WEB_PORT', '"1738"'
            buildConfigField 'String', 'COUNTRY_CODE', '"+1"'
            buildConfigField 'String', 'flag', '"us"'
            buildConfigField 'boolean', 'isDevelopment', 'false'
        }

        // This is the version to run against online server
        newFlavor {
            dimension "server"
            minSdkVersion 16
            targetSdkVersion 27
            versionCode 1
            versionName "1.0"
            buildConfigField 'String', 'BASE_URL', '"http://demo.mywww.com/api/"'
            buildConfigField 'String', 'USER_PROFILE_URL', '"http://demo.mywww.com/admin/file/"'
            buildConfigField 'int', 'WEB_PORT', '80'   // Doesnt seem to be used...
            buildConfigField 'String', 'SERVER_URl', '"72.28.24.98"'   // This seems to have to be IP address of server in BASE_URL
            buildConfigField 'String', 'flag', '"us"'
            buildConfigField 'boolean', 'isDevelopment', 'false'
        }

    }

}
allprojects {
    repositories {
        jcenter()
        mavenCentral()
        mavenLocal()
        maven { url "http://pay.cards/maven" }
    }
}

// 2019-11-21 - Added this because of error during build: java.lang.RuntimeException: com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v13/view/DragAndDropPermissionsCompat.class
//    This article suggested v4 - https://stackoverflow.com/questions/26966843/java-util-zip-zipexception-duplicate-entry-during-packagealldebugclassesformult
//    This article suggested v13, but got error "error: package android.support.v13.app does not exist"  - https://stackoverflow.com/questions/49553021/program-type-already-present-android-support-v13-view-draganddroppermissionscom
//    This article, second answer, recommended checking duplicated dependencies in module build.gradle- https://stackoverflow.com/questions/49553021/program-type-already-present-android-support-v13-view-draganddroppermissionscom
configurations {
    all*.exclude group: 'com.android.support', module: 'support-v4'
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')

    // This was suggested but didn't work - https://stackoverflow.com/questions/29003114/android-build-fails-over-com-android-dex-dexexception-multiple-dex-files-define
    implementation fileTree(dir: 'libs', include: '*.jar', exclude: 'android-support-*.jar')

    //    compile 'com.braintreepayments.api:braintree:2.+'
//    compile 'cards.pay:paycardsrecognizer:1.0.0'
    implementation 'cards.pay:paycardsrecognizer:1.1.0'
    implementation files('src/libs/mint-5.2.2.jar')
    implementation 'com.pddstudio:urlshortener:1.0.2'
    implementation 'io.branch.sdk.android:library:2.14.1'
    implementation 'com.googlecode.libphonenumber:libphonenumber:7.7.2'
    implementation 'com.github.twinkle942910:monthyearpicker:0.0.1'


    implementation ('com.github.polok.routedrawer:library:1.0.0') {
        exclude module: 'appcompat-v7'
        exclude module: 'mediarouter-v7'
    }
    implementation 'com.android.support:mediarouter-v7:27.1.1'
    implementation 'com.android.support:appcompat-v7:27.1.1'

    implementation ('com.wdullaer:materialdatetimepicker:3.2.2') {
        // exclude module: 'mediarouter-v7'
    }

    implementation 'com.github.bumptech.glide:glide:3.5.2'
    implementation 'com.google.android.gms:play-services-gcm:12.0.0'

    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.mikhaellopez:circularimageview:3.0.2'
    implementation 'com.prolificinteractive:material-calendarview:1.4.3'
    implementation 'cn.aigestudio.wheelpicker:WheelPicker:1.1.2'
    implementation 'br.com.moip:credit-card-validator:0.0.6'
    implementation 'com.wang.avi:library:2.1.3'
    implementation 'com.karumi:dexter:4.1.0'
    implementation 'com.squareup.picasso:picasso:2.5.2'

    implementation 'com.sothree.slidinguppanel:library:3.3.1'
    implementation 'com.squareup.okhttp:okhttp:2.5.0'
    implementation 'org.sufficientlysecure:html-textview:3.5'
    implementation 'com.android.support:cardview-v7:27.1.1'
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    implementation 'com.android.support:design:27.1.1'

    implementation 'com.google.android.gms:play-services:12.0.0'

    implementation 'com.google.android.gms:play-services-maps:12.0.0'
    implementation 'com.jaredrummler:material-spinner:1.1.0'
    implementation 'com.google.firebase:firebase-messaging:12.0.0'
    implementation 'com.facebook.stetho:stetho:1.5.0'
    implementation 'com.amitshekhar.android:debug-db:1.0.1'
    implementation 'com.intuit.sdp:sdp-android:1.0.5'
    implementation 'com.squareup.retrofit2:retrofit:2.1.0'
    implementation 'com.google.code.gson:gson:2.8.1'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'
    implementation 'com.squareup.retrofit2:converter-gson:2.0.2'
    implementation 'io.card:android-sdk:5.5.1'
    implementation 'com.github.zcweng:switch-button:0.0.3@aar'
    implementation 'io.github.luizgrp.sectionedrecyclerviewadapter:sectionedrecyclerviewadapter:1.0.4'
//    compile 'com.android.support:multidex:1.0.2'
}
apply plugin: 'com.google.gms.google-services'

Articles that do not solve the problem I am having:

解决方案

Try the following :

Add this block of code in your build.gradle file

dexOptions {
preDexLibraries = false
}

Then clean and rebuild your project.

这篇关于由于“多个dex文件定义”,Android Studio 3.5.2项目生成问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆