sae*_*ini 159 java android gradle google-play-services google-signin
我正在尝试整合谷歌登录,在我的应用程序中,我添加了这些库:
compile 'com.google.android.gms:play-services-identity:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'
Run Code Online (Sandbox Code Playgroud)
还将此添加到项目构建gradle:
classpath 'com.google.gms:google-services:1.4.0-beta3'
Run Code Online (Sandbox Code Playgroud)
还为app build gradle添加插件:
apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)
然后添加所需的权限,但当我尝试运行我的应用程序时,收到此错误:
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
Run Code Online (Sandbox Code Playgroud)
Jul*_*ipt 312
尝试添加multiDexEnabled true到您的应用build.gradle文件.
defaultConfig {
multiDexEnabled true
}
Run Code Online (Sandbox Code Playgroud)
编辑:
首先尝试史蒂夫的回答.如果它经常发生或第一步没有帮助multiDexEnabled可能会有所帮助.对于那些喜欢深入挖掘的人来说,有几个类似的问题(有更多的答案):
:app:dexDebug ExecException以非零退出值2结束
错误:任务':app:dexDebug'的执行失败.com.android.ide.common.process.ProcessException
A.G*_*ndt 146
另一件需要注意的事情是你不使用
compile 'com.google.android.gms:play-services:8.3.0'
Run Code Online (Sandbox Code Playgroud)
这将导入所有的游戏服务,并且它只需要比一个hello世界超过单个dex APK的65535方法限制.
始终只指定您需要的服务,例如:
compile 'com.google.android.gms:play-services-identity:8.3.0'
compile 'com.google.android.gms:play-services-plus:8.3.0'
compile 'com.google.android.gms:play-services-gcm:8.3.0'
Run Code Online (Sandbox Code Playgroud)
Ste*_*nem 137
我只需要清理我的项目,然后它就成功建立了.
Mau*_*vin 23
当我向项目中添加一些新方法时,这个错误就开始出现了.我知道我没有接近65k方法限制,如果我能帮助它,我不想为我的项目启用multiDex支持.
我通过增加:app:transformClassesForDexForDebug任务可用的内存来解决它.我通过在中指定javaMaxHeapSize来做到这一点gradle.build.
gradle.build
android {
...
dexOptions {
javaMaxHeapSize "4g" //specify the heap size for the dex process
}
}
Run Code Online (Sandbox Code Playgroud)
在尝试解决此问题的其他常见解决方案后,我尝试了这个问题:
clean/app/build和/build目录错误
错误:任务>':app:transformClassesWithDexForDebug'的执行失败.com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:流程 '命令' /Library/Java/JavaVirtualMachines/jdk1.8.0_45. jdk/Contents/Home/bin/java''以非零退出值1结束
注意:增加DEX任务可用的内存可能会导致内存较低的系统出现性能问题 - 链接.
小智 8
我在Android Studio 1.5.1和gradle 1.5.0中也遇到过类似的问题.我只需要从依赖项中删除不需要的库,这些库可能会自动添加到我的应用程序的build.gradle文件中.一个是:编译'com.google.android.gms:play-services:8.4.0'.因此,对于最佳实践,请尝试仅包含特定的播放服务库,例如仅适用于广告
dependencies {
compile 'com.google.android.gms:play-services-ads:8.4.0'
}
Run Code Online (Sandbox Code Playgroud)
虽然
defaultConfig {
multiDexEnabled true
}
Run Code Online (Sandbox Code Playgroud)
这也将解决问题,但在gradle控制台中提供了大量的Notes,这使得在构建期间找到其他实际问题变得困惑
| 归档时间: |
|
| 查看次数: |
235813 次 |
| 最近记录: |