多DEX文件试图导入谷歌地图为谷歌地图项目时定义的Android Studio错误 [英] Multiple dex files define Android studio error when trying to import Google Maps into Google Maps project
问题描述
我有一些问题的最新版Android工作室,拥有一个Facebook SDK合并(仅用于登录)和谷歌地图API。
我已经成立了工作室的Android与Facebook的整合,工作正常的项目。但是,我的一个同事创建了谷歌地图的一部分,这我试图复制粘贴/到我的项目。我已经设置了它像<一个href=\"https://developers.google.com/maps/documentation/android/start#getting_the_google_maps_android_api_v2\"相对=nofollow>谷歌文档告诉我。所以这不是问题。
我只具有Facebook的图书馆我的项目,build.cradle文件与build.cradle问题,如果我是正确的。该错误是:
意外顶级例外:
com.android.dex.DexException:多DEX文件定义Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
在com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
在com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
在com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
在com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
在com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
在com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
在com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
在com.android.dx.command.dexer.Main.run(Main.java:230)
在com.android.dx.command.dexer.Main.main(Main.java:199)
在com.android.dx.command.Main.main(Main.java:103)
失败。
失败:建立失败,一个异常
- 出了什么问题:
执行失败的任务:应用程序:dexDebug。
com.android.ide.common.internal.LoggedErrorException:无法运行命令:
C:\\ Program Files文件\\ Android的工作室\\ SDK \\集结TOOLS \\ Android的4.4.2 \\ dx.bat --dex --output D:\\阿明多\\ Android的studioProjects \\ Project4 \\程序\\编译\\ DEX \\调试D: \\阿明多\\ Android的studioProjects \\ Project4 \\程序\\编译\\类\\调试D:\\阿明多\\ Android的studioProjects \\ Project4 \\程序\\编译\\依赖缓存\\调试D:\\阿明多\\ Android版studioProjects\\Project4\\app\\build\\$p$p-dexed\\debug\\android-support-v13-f0554868bfbee0fc4abfdc11fd962734ae0c6d5f.jar D:\\阿明多\\ Android版studioProjects\\Project4\\app\\build\\$p$p-dexed\\debug\\android-support-v4-16277ee73bd8328d9fa6b95c79f131076fa8f4be.jar D:\\阿明多\\ Android版studioProjects\\Project4\\app\\build\\$p$p-dexed\\debug\\bolts-714d8ee0ce6246f4109e078b8cded1f42aea8693.jar D:\\阿明多\\ Android版studioProjects\\Project4\\app\\build\\$p$p-dexed\\debug\\classes-291c4de37af2df287d3f0bde38005eb4ecb484f4.jar D:\\阿明多\\ Android版studioProjects\\Project4\\app\\build\\$p$p-dexed\\debug\\classes-82c2a48def34cb7b1f99f973c27e1ef8562b4177.jar D:\\阿明多\\ Android版studioProjects\\Project4\\app\\build\\$p$p-dexed\\debug\\support-v4-19.0.1-9046a2105fe8ed5a830061a0f501bb9eb2dfd6b0.jar
错误code:
2
输出:
块引用>意外顶级例外:
com.android.dex.DexException:多DEX文件定义Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
在com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
在com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
在com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
在com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
在com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
在com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
在com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
在com.android.dx.command.dexer.Main.run(Main.java:230)
在com.android.dx.command.dexer.Main.main(Main.java:199)
在com.android.dx.command.Main.main(Main.java:103)我在我的摇篮文件的依赖性正在寻找这样的:
项目的build.cradle:(请注意,从主体工程的库文件夹中是进口的,例如库/ Facebook的
)
依赖性{
编译文件树(导演:'库',包括:['的* .jar'])结果
编制项目(':库:Facebook的)结果
编译com.google.android.gms:发挥服务:+'结果
}
块引用>Facebook的build.cradle:
依赖性{
编译文件树(导演:'库',包括:['的* .jar'])结果
编译文件(库/ bolts.jar')结果
编译文件(库/ Android的支持 - v4.jar')结果
}
块引用>该错误只发生在我加入
。编译com.google.android.gms:发挥服务:+
到项目的摇篮我已经试过几乎所有关于这个话题就到这里已经还试图导入相同的lib两个发祥地的。任何想法?
EDIT1:
试了一下斯科特说。但我相信它是由它仍然有2次Android的支持所致。采用最新的3.14.1的Facebook SDK。
EDIT2:
Facebook的构建摇篮更改depency:
编译 - 类路径编制的主要来源
+ --- Project4.libraries:Facebook的:未指定结果
| \\ --- com.android.support:support-v13:13.0.+ - &GT; 13.0.0
| \\ --- com.android.support:support-v4:13.0.0 - &GT; 19.0.1
\\ --- com.google.android.gms:发挥服务:+ - &GT; 52年4月4日
\\ --- com.android.support:support-v4:19.0.1因此,它看起来像Facebook仍然在使用V4之下。
EDIT3:
注释后,再次改变了buildToolsVersion到19.0.1的两个版本。也改变facebook.cradle编译com.android.support:support-v4:19.0.1
。终端现在提供我这个:
+ --- Project4.libraries:Facebook的:未指定结果
| \\ --- com.android.support:support-v4:19.0.1
\\ --- com.google.android.gms:播放服务:52年4月4日
\\ --- com.android.support:support-v4:19.0.1
所以我猜想,现在是正确的,但我仍然收到同样的错误。这是完全错误日志(我认为这是和以前一样,但只是检查墙壁)。
最后,也是最后编辑:固定
我的应用程序build.cradle:{相关性
编译com.google.android.gms:游戏服务:52年4月4日
编译文件树(包括:['的* .jar'],DIR:库)
编译文件(构建/库/解析-1.5.1.jar')
编制项目(':库:Facebook的)
}我的Facebook的lib build.cradle:
{相关性
编译com.google.android.gms:游戏服务:52年4月4日
编译文件树(包括:['的* .jar'],DIR:库)
编译文件(构建/库/解析-1.5.1.jar')
}要解决这个问题我不得不导入播放服务为 BOTH 库,DERP
解决方案只需导入播放服务进的两个的 build.cradle文件编译<$ C $固定它C> com.google.android.gms:播放服务:52年4月4日
I'm having some problems with the latest version of Android studio, combined with a Facebook SDK (used only for logging in) and the Google Maps API.
I've set up a project in Android studio with the Facebook integration which works fine. But a colleague of mine created the Google Maps part, which I am trying to copy/paste into my project. I've set up it like the Google documentation tells me to. So that's not the problem.
I am only having problems with the build.cradle from my project and build.cradle file of the facebook library if I'm correct. The error is:
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103)
FAILED
FAILURE: Build failed with an exception.
- What went wrong: Execution failed for task ':app:dexDebug'. com.android.ide.common.internal.LoggedErrorException: Failed to run command: C:\Program Files\android-studio\sdk\build-tools\android-4.4.2\dx.bat --dex --output D:\Armindo\Android studioProjects\Project4\app\build\dex\debug D:\Armindo\Android studioProjects\Project4\app\build\classes\debug D:\Armindo\Android studioProjects\Project4\app\build\dependency-cache\debug D:\Armindo\Android studioProjects\Project4\app\build\pre-dexed\debug\android-support-v13-f0554868bfbee0fc4abfdc11fd962734ae0c6d5f.jar D:\Armindo\Android studioProjects\Project4\app\build\pre-dexed\debug\android-support-v4-16277ee73bd8328d9fa6b95c79f131076fa8f4be.jar D:\Armindo\Android studioProjects\Project4\app\build\pre-dexed\debug\bolts-714d8ee0ce6246f4109e078b8cded1f42aea8693.jar D:\Armindo\Android studioProjects\Project4\app\build\pre-dexed\debug\classes-291c4de37af2df287d3f0bde38005eb4ecb484f4.jar D:\Armindo\Android studioProjects\Project4\app\build\pre-dexed\debug\classes-82c2a48def34cb7b1f99f973c27e1ef8562b4177.jar D:\Armindo\Android studioProjects\Project4\app\build\pre-dexed\debug\support-v4-19.0.1-9046a2105fe8ed5a830061a0f501bb9eb2dfd6b0.jar Error Code: 2 Output:
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103)
My dependencies in my cradle files are looking like this: project's build.cradle: (Note that the libs from the main project are imported in a folder, e.g. libraries/facebook )
dependencies { compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':libraries:facebook')
compile 'com.google.android.gms:play-services:+'
}facebook's build.cradle:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/bolts.jar')
compile files('libs/android-support-v4.jar')
}The error only occurs when I add
compile 'com.google.android.gms:play-services:+'
to the project's cradle.I've tried almost all the topics about this on here already and also tried to import the same lib in both cradle's. Any ideas?
Edit1: Tried what Scott said. But I believe it is caused by it still having 2 times Android-support. Using the latest 3.14.1 Facebook SDK.
Edit2: Changed depency of facebook's build cradle:
compile - Classpath for compiling the main sources.
+--- Project4.libraries:facebook:unspecified
| \--- com.android.support:support-v13:13.0.+ -> 13.0.0 | \--- com.android.support:support-v4:13.0.0 -> 19.0.1 \--- com.google.android.gms:play-services:+ -> 4.4.52 \--- com.android.support:support-v4:19.0.1So it looks like Facebook is still using v4 underneath..
Edit3: After the comment, changed the buildToolsVersion again to 19.0.1 on both versions. Also changed facebook.cradle
compile 'com.android.support:support-v4:19.0.1'
.The terminal now provides me with this:
+--- Project4.libraries:facebook:unspecified
So I guess that that is correct now, but I am still receiving the same error. This is the full error log (i think it's the same as before. But just checking the walls).
| \--- com.android.support:support-v4:19.0.1 \--- com.google.android.gms:play-services:4.4.52 \--- com.android.support:support-v4:19.0.1Last and final edit: Fixed! my application build.cradle:
dependencies { compile 'com.google.android.gms:play-services:4.4.52' compile fileTree(include: ['*.jar'], dir: 'libs') compile files('build/libs/Parse-1.5.1.jar') compile project(':libraries:facebook') }
my facebook's lib build.cradle:
dependencies { compile 'com.google.android.gms:play-services:4.4.52' compile fileTree(include: ['*.jar'], dir: 'libs') compile files('build/libs/Parse-1.5.1.jar') }
To fix it I just had to import the play services into BOTH the libraries, derp
解决方案Fixed it by just importing the play services into both build.cradle files compile
com.google.android.gms:play-services:4.4.52
这篇关于多DEX文件试图导入谷歌地图为谷歌地图项目时定义的Android Studio错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!