Android Studio 1.0 RC 4 构建错误
Posted
技术标签:
【中文标题】Android Studio 1.0 RC 4 构建错误【英文标题】:Android Studio 1.0 RC 4 Build Error 【发布时间】:2015-02-05 14:01:04 【问题描述】:我尽我所能从 intelij 导入一个项目,但我得到了这个非常长的错误,我无法理解。我尝试执行“无效并重新启动”并得到相同的错误。我不知道我的任何构建文件是否与此错误相关,如果您有任何建议,请告诉我,我会更新。
错误:任务 ':app:dexDebug' 执行失败。
com.android.ide.common.internal.LoggedErrorException:无法运行命令: C:\Users\Nick\AppData\Local\Android\android-sdk\build-tools\20.0.0\dx.bat --dex --no-optimize --output C:\Users\Nick\AndroidStudioProjects\NameThatPlaneQuiz\ app\build\intermediates\dex\debug C:\Users\Nick\AndroidStudioProjects\NameThatPlaneQuiz\app\build\intermediates\classes\debug C:\Users\Nick\AndroidStudioProjects\NameThatPlaneQuiz\app\build\intermediates\pre-dexed\ debug\support-annotations-21.0.2-0a182725e9aa175cb2c9765c57055aaa824304e6.jar C:\Users\Nick\AndroidStudioProjects\NameThatPlaneQuiz\app\build\intermediates\pre-dexed\debug\picasso-2.1.1-ca3ca17668b6992af9c0197\45b692af9c019784fb692 Nick\AndroidStudioProjects\NameThatPlaneQuiz\app\build\intermediates\pre-dexed\debug\libGoogleAnalyticsV2-767507628f16b98644c7df4c6626869f426ce4e7.jar C:\Users\Nick\AndroidStudioProjects\NameThatPlaneQuiz\app\build\intermediates\pre-dexed\debug\internal_impl-21.0。 2-a8cad4df1b726255aab2a982204a5f72da2f18c3.jar C:\Users\Nick\AndroidStudioProjects\NameThatPlaneQuiz\app\build\intermediates\ pre-dexed\debug\amazon-ads-5.4.46-736982c75f8a8e92a0ad571df866edd9f053f48a.jar C:\Users\Nick\AndroidStudioProjects\NameThatPlaneQuiz\app\build\intermediates\pre-dexed\debug\android-support-v4-570a9308b85abcjar450e3a8fe6 :\Users\Nick\AndroidStudioProjects\NameThatPlaneQuiz\app\build\intermediates\pre-dexed\debug\classes-886dcf9785070a0ce74d9b194160c2ed98e7f5a6.jar C:\Users\Nick\AndroidStudioProjects\NameThatPlaneQuiz\app\build\intermediates\pre-dexed\debug\ android-support-v7-47c2bab1cd06319a40ed131420476fad110b3621.jar C:\Users\Nick\AndroidStudioProjects\NameThatPlaneQuiz\app\build\intermediates\pre-dexed\debug\classes-cde05798e7e54ac95eab6032df408c4025bb501c.jar\NameThatPlaneQuiz\AndroidStudio build\intermediates\pre-dexed\debug\libGoogleAnalyticsServices-4179946d7621a48fc3cc005840f233ec074f4ad9.jar C:\Users\Nick\AndroidStudioProjects\NameThatPlaneQuiz\app\build\intermediates\pre-dexed\debug\classes-e97fdf43369bbf65731abad5e4fd8 r 错误代码: 2 输出: 意外的***异常: com.android.dex.DexException:多个dex文件定义了Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs; 在 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)
将构建工具更改为 21.1.1 会导致此错误:
错误:任务 ':app:dexDebug' 执行失败。
com.android.ide.common.internal.LoggedErrorException:无法运行命令: C:\Users\Nick\AppData\Local\Android\android-sdk\build-tools\21.1.1\dx.bat --dex --no-optimize --output C:\Users\Nick\AndroidStudioProjects\NameThatPlaneQuiz\ app\build\intermediates\dex\debug --input-list=C:\Users\Nick\AndroidStudioProjects\NameThatPlaneQuiz\app\build\intermediates\tmp\dex\debug\inputList.txt 错误代码: 2 输出: 意外的***异常: com.android.dex.DexException:多个dex文件定义Lcom/google/analytics/tracking/android/AnalyticsClient; 在 com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) 在 com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) 在 com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) 在 com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) 在 com.android.dx.merge.DexMerger.merge(DexMerger.java:189) 在 com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) 在 com.android.dx.command.dexer.Main.runMonoDex(Main.java:302) 在 com.android.dx.command.dexer.Main.run(Main.java:245) 在 com.android.dx.command.dexer.Main.main(Main.java:214) 在 com.android.dx.command.Main.main(Main.java:106)
【问题讨论】:
你的依赖是什么?尝试从项目根目录中的命令行运行gradlew.bat androidDependencies
。
我在“项目结构”对话框中添加的 .jar 文件中包含 3 个库。在我在顶部导入 .jar 文件时创建的模块的 build.gradle 文件中显示“此文件夹不属于 gradle 项目。确保它已在 Settings.gradle 中注册”。在我的 Settings.gradle 文件中,每个模块都显示 include '...'
建议:下载最新的构建工具(21.1.1)。你使用 20.0.0。
【参考方案1】:
com.android.dex.DexException: Multiple dex files define
com/google/analytics/tracking/android/AnalyticsClient
错误是由于包含 Google Analytics 库的多个依赖项(jar、aar 或项目)造成的。这可能是因为:
-
有时中间构建文件会处于奇怪/错误的状态,尤其是在您调整依赖关系或更改构建工具而不进行清理时。转到 Build->clean 项目,或运行 `./gradlew clean',然后再次尝试构建。
您引用了同一个库两次(例如,您包含 Google Analytics jar,并且您正在使用 gradle/maven 工件)。删除其中一个。
最不可能 - 两个不同的库/依赖项实际上包含 Google Analytics。您可以使用 JD-GUI 之类的实用程序手动检查 jar/aar 文件以查看它们包含哪些包,或者更轻松地您可以在 Android Studio 中查看项目的
build
文件夹(通常为 build/intermediates
)以查看是否您发布的错误中引用的包有重复条目。
如果 #1 不起作用,我将首先审核您项目的所有依赖项。一般来说,我远离项目结构对话框,只是手动编辑 .gradle 文件。我建议将您的 .gradle 文件的编辑版本添加到您的问题中。
【讨论】:
这绝对是分析库的问题,因为我从依赖项中删除了所有分析库并注释掉了所有引用,现在一切正常。 如果您还将 Google Play 服务列为依赖项,您可以参考其中内置的 Google Analytics 版本,我认为这是最新版本。也就是说,新版本可能需要对您已经使用的任何内容进行重新编码。以上是关于Android Studio 1.0 RC 4 构建错误的主要内容,如果未能解决你的问题,请参考以下文章