尝试将Google地图导入Google地图项目时,多个dex文件会定义Android Studio错误 [英] Multiple dex files define Android studio error when trying to import Google Maps into Google Maps project

查看:207
本文介绍了尝试将Google地图导入Google地图项目时,多个dex文件会定义Android Studio错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在使用最新版本的Android Studio,以及一个Facebook SDK(仅用于登录)和Google Maps API的问题。

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.

我在Android工作室设立了一个项目,Facebook整合工作正常。但是我的一位同事创建了Google Maps部分,我正在尝试复制/粘贴到我的项目中。我已经设置好了,像 Google 文档告诉我的。所以这不是问题。

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.

如果我是正确的,我只能从我的项目的build.cradle和facebook库的build.cradle文件中遇到问题。错误是:

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:


未指定的顶级例外:
com.android.dex.DexException:多个dex文件定义了Landroid /支持/ 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)
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)

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:构建失败,例外。

FAILURE: Build failed with an exception.


  • 什么出现错误:
    执行失败的任务':app:dexDebug'。
    com.android.ide.common.internal.LoggedErrorException:无法运行命令:
    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-714d8ee0ce6246f4109e07 8b8cded1f42aea8693.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
    错误代码:
    2
    输出:



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)

我的基座文件中的依赖关系如下所示:
project的build.cradle(注意,主项目的lib是以文件夹,例如图书馆/ facebook

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 )


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

编译项目(':libraries:facebook')

compile' com.google.android.gms:play-services:+'

}

dependencies { compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':libraries:facebook')
compile 'com.google.android.gms:play-services:+'
}

facebook的build.cradle:

facebook's build.cradle:


依赖关系{
compile fileTree(dir:'libs',include:['* .jar'])

编译文件('libs / bolt.jar')

编译文件('libs / android-support-v4.jar')

}

dependencies { compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/bolts.jar')
compile files('libs/android-support-v4.jar')
}

只有当我添加编译'com.google.android.gms:play-services:+'到项目的摇篮。

The error only occurs when I add compile 'com.google.android.gms:play-services:+' to the project's cradle.

我已经尝试了几乎所有关于这个的主题,并尝试在摇篮中导入相同的lib。任何想法?

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:
试过Scott说的话。但是我相信它是由Android仍然支持Android的2倍引起的。使用最新的3.14.1 Facebook SDK。

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 :
更改Facebook的构建基座的版本:

Changed depency of facebook's build cradle:

compile - 用于编译主要源的类路径。
+ --- 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.1

所以看起来像Facebook正在使用v4。

So it looks like Facebook is still using v4 underneath..

Edit3:
注释后,将buildToolsVersion再次更改为19.0.1 on两个版本。也改变了facebook.cradle 编译'com.android.support:support-v4:19.0.1'

终端现在提供给我:
+ --- Project4.libraries:facebook:unspecified

| \ --- com.android.support:support-v4:19.0.1
\ --- com.google.android.gms:play-services:4.4.52
\-- - com.android.support:support-v4:19.0.1

所以我猜这是正确的,但我仍然收到相同的错误。这是完整的错误日志(我认为这是一样的,但只是检查墙壁)。

The terminal now provides me with this: +--- Project4.libraries:facebook:unspecified
| \--- com.android.support:support-v4:19.0.1 \--- com.google.android.gms:play-services:4.4.52 \--- com.android.support:support-v4:19.0.1
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).

最后和最后编辑:固定!
我的应用程序build.cradle:
依赖项{
编译'com.google.android.gms:play-services编译文件(包括:['* .jar'],dir:'libs')
编译文件('build / libs / Parse-1.5.1.jar')
编译项目(':libraries:facebook')
}

我的Facebook的lib build.cradle:
$ code依赖关系{
compile'c​​om.google.android.gms:play-services:4.4.52'
compile fileTree(include:['* .jar'],dir: 'libs')
编译文件('build / libs / parse-1.5.1.jar')
}

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') }

为了解决这个问题,我只需要把这个play服务导入到 BOTH 中,这个库,derp

To fix it I just had to import the play services into BOTH the libraries, derp

推荐答案

>通过简单地将播放服务导入到 build.cradle文件中来修正s编译 com.google.android.gms:play-services:4.4.52

Fixed it by just importing the play services into both build.cradle files compile com.google.android.gms:play-services:4.4.52

这篇关于尝试将Google地图导入Google地图项目时,多个dex文件会定义Android Studio错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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