我正在尝试使用和GoogleApiclient实现View.OnClickListener接口,如下所示
public class MainActivity extends Activity implements
View.OnClickListener,GoogleApiClient.ConnectionCallbacks,OnConnectionFailedListener, com.google.android.gms.location.LocationListener{
}
但是失败并出现以下错误
错误:任务':app:dexDebug'执行失败。 com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:进程'命令 ' C:\ Program Files \ Java \ jdk1.8.0_51 \ bin \ java.exe''完成了 非零退出值2
以下是Gradle控制台错误 OTE:
H:\xxx\app\src\main\java\com\dbprox\css\MainActivity.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:app:compileDebugNdk UP-TO-DATE
:app:compileDebugSources
:app:preDexDebug UP-TO-DATE
:app:dexDebug
AGPBI: {"kind":"simple","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","sources":[{}]}
AGPBI: {"kind":"simple","text":"com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:484)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:261)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:473)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:161)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:188)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.run(Main.java:277)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.main(Main.java:245)","sources":[{}]}
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.Main.main(Main.java:106)","sources":[{}]}
FAILED
FAILURE: Build failed with an exception.
出了什么问题: 任务':app:dexDebug'。
执行失败com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令' C:\ Program Files \ Java \ jdk1.8.0_51 \ bin \的java.exe''完成非零退出值2
尝试: 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。
建立失败
答案 0 :(得分:19)
由于您要导入的库数量,您的项目已超过65536种方法。
您很幸运,因为Google Play服务现在允许您选择要导入的子模块,而不是导入整个项目。 这使您可以快速轻松地解决此问题。
在6.5之前的Google Play服务版本中,您必须进行编译 整个API包进入您的应用程序。在某些情况下,这样做了 保持应用程序中的方法数量更加困难(包括 65,536下的框架API,库方法和您自己的代码 限制。
从版本6.5开始,您可以选择性地编译Google Play 将API应用到您的应用中。
因此,如果您只需要Google云端硬盘,请将其替换为:
compile 'com.google.android.gms:play-services:9.2.0'
有了这个:
compile 'com.google.android.gms:play-services-drive:9.2.0'
答案 1 :(得分:0)
我认为你的一些jar文件无法编译。您应该进入build.gradle
文件并查看您的依赖项。如果您只是导入一些jar文件,您可以尝试一次删除并添加一个。这将帮助您确定哪一个导致错误。
对于错误: MainActivity.java使用或覆盖已弃用的API。 注意:使用-Xlint重新编译:弃用以获取详细信息。,您可能正在使用旧版本的appcompat库。您可以参考此link。