我正在尝试整合谷歌登录,在我的应用程序中,我添加了这些库:
compile 'com.google.android.gms:play-services-identity:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'
还将此添加到项目构建gradle:
classpath 'com.google.gms:google-services:1.4.0-beta3'
还为app build gradle添加插件:
apply plugin: 'com.google.gms.google-services'
然后添加所需的权限,但当我尝试运行我的应用程序时,收到此错误:
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException:
org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0\bin\java.exe'' finished with non-zero exit value 2
23 回答
只需转到Build - Edit Build Types - Properties选项卡 - Build Type Version并将其降级到ver 23.0.1 . 点击确定 . 这适用于android studio 1.5 . 它对我有用 .
写的答案是 gradle put defaultConfig 然后 application name in manifest android:name = "android.support.multidex.MultiDexApplication"希望这个答案对于某个人来说太难了
这段代码解决了问题
要以最简单的方式实施Google登录,请访问: google sign in android
也试试
同时为不同的服务保留相同的版本号 .
我通过添加:在
build.gradle
中解决了这个问题:在
local.properties
,提到依赖:
清洁和重建 .
尝试将
multiDexEnabled true
添加到您的应用 build.gradle 文件中 .EDIT:
首先尝试Steve的answer . 万一它经常发生或第一步没有帮助
multiDexEnabled
可能会有所帮助 . 对于那些喜欢深入挖掘的人来说,有几个类似的问题(有更多的答案)::app:dexDebug ExecException finished with non-zero exit value 2
Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException
另一件需要注意的事情是你不使用
这将导入所有的游戏服务,并且它只需要比一个hello世界超过单个dex APK的65535方法限制 .
始终只指定您需要的服务,例如:
我只需要清理我的项目,然后它就成功 Build 了 .
当我向项目中添加一些新方法时,这个错误就开始出现了 . 我知道我没有接近65k方法限制,如果我能帮助它,我不想为我的项目启用multiDex支持 .
我通过增加
:app:transformClassesForDexForDebug
任务可用的内存来解决它 . 我通过在gradle.build
中指定 javaMaxHeapSize 来完成此操作 .gradle.build
在尝试解决此问题的其他常见解决方案后,我尝试了这个问题:
正在运行项目
clean
从我的项目中手动删除
/app/build
和/build
目录使Gradle Cache无效并重新启动Android Studio
Error
注意:增加DEX任务可用的内存可能会导致内存较低的系统出现性能问题 - link .
我在Android Studio 1.5.1和gradle 1.5.0中也遇到过类似的问题 . 我只需要从依赖项中删除不需要的库,这些库可能会自动添加到我的应用程序的build.gradle文件中 . 一个是:编译'com.google.android.gms:play-services:8.4.0' . 因此,对于最佳实践,请尝试仅包含特定的播放服务库,例如仅适用于广告
虽然
这也将解决问题,但在gradle控制台中提供了大量的Notes,这使得在构建期间找到其他实际问题变得困惑
你可以看到Android的文档
的Manifest.xml
我正在使用AS 1.5.1并遇到同样的问题 . 但只是清理项目就不会这样做,所以我尝试了一些东西 .
清洁项目
重启AS
同步项目
这对我有用,所以我希望这会有所帮助 .
在我的情况下,将buildToolsVersion从“24”更改为“23.0.2”,解决问题 .
在我的情况下,发生了异常,因为所有Google Play服务扩展程序的版本与以下版本不同
当我改变它时,它工作
我用下一个解决了它:
我配置multidex
在build.gradle中,您需要添加下一个 .
在local.properties中添加下一个
之后进入Application类,您还需要添加Multidex .
不要忘记将行代码添加到Manifest.xml中
这就是它足以解决这个问题:执行失败的任务':app:transformClassesWithDexForDebug . 使用javaMaxHeapSize“2g”检查build.gradle并且local.properties org.gradle.jvmargs = -Xmx2048m是2千兆字节 .
当我通过git回滚到旧版本时我遇到了同样的问题,那个版本有一个第三方api的以前的.jar库,并且由于某种原因结果发现两个jar的相同的sdk,只是不同的版本都在/ libs文件夹中 .
首先删除中间件文件您的APP FOLDER \ app \ build \ intermediates或清理您的项目,然后重建 .
不要补充
即
这对我有用
我通过更改使用最新
buildToolsVersion
解决了这个问题如果您使用的是最新的gradle版本,即
classpath 'com.android.tools.build:gradle:1.5.0' and classpath 'com.google.gms:google-services:1.4.0-beta3'
,请尝试更新最新版本从SDK管理器支持存储库并重建整个项目 .如果您需要为cordova插件添加此引用,请在plugin.xml文件中添加下一行 .
如果不同的依赖项具有相同的jar也会导致此构建错误 .
例如:
如果"library1"和"library2"具有名为
xxx.jar
的相同jar,则会出现此错误 .它发生在我身上,因为Eclipse内存泄漏 . 我不得不重新启动计算机 .
我在gradle中更改了几个png和内部版本号,现在我得到了这个 . 没有多少清洁和重新启动有帮助 . 禁用即时运行为我修复了它 . 因人而异
我有相同的选项,只要我关闭即时运行,它在我的API16设备上工作正常,但在API24设备上,它可以正常运行 .
希望这有助于有同样问题的人