当前位置: 首页 > 知识库问答 >
问题:

导入Google Play服务会导致DexIndexOverflow异常

谷越
2023-03-14

我正在尝试实现View.OnClickListener接口和GoogleApiclient如下

    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: Process'命令'C:\Program Files\Java\jdk1.8。0_51\bin\java.exe"以非零退出值结束2

以下是Gradle控制台错误注释:

 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.

>

  • 出了什么问题:任务“:应用程序:dexDebug”的执行失败。

    com.android.ide.common.process。ProcessException:org.gradle.process.internal。ExecException:处理C:\ProgramFiles\Java\jdk1.8.0_51\bin\Java中的“命令”。exe“”以非零退出值2结束

    Try:使用- stacktrace选项运行以获取堆栈跟踪。使用- info或- debug选项运行以获得更多日志输出。

    建筑失败

  • 共有2个答案

    漆雕修德
    2023-03-14

    我认为你的一些jar文件不能编译。您应该进入< code>build.gradle文件并查看您的依赖项。如果您只是导入一些jar文件,您可以尝试一次删除和添加一个。这将帮助您确定是哪一个导致了错误。

    对于错误:MainActivity。java使用或覆盖不推荐使用的API。注意:使用-Xlint:deprecation重新编译以获取详细信息。,您可能正在使用较旧版本的appcompat库。您可以参考此链接。

    冯祺
    2023-03-14

    由于您正在导入的库的数量,您的项目已超过65536种方法。

    不过你很幸运,因为Google Play服务现在允许你挑选要导入的子模块,而不是整个导入。这使您可以快速轻松地解决这个问题。

    根据文件

    在 6.5 之前的 Google Play 服务版本中,您必须将整个 API 包编译到您的应用中。在某些情况下,这样做会使应用中的方法数(包括框架 API、库方法和你自己的代码)保持在 65,536 个限制以下变得更加困难。

    从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' 
    
     类似资料:
    • 问题内容: 根据python文档,自python 2.5开始支持相对导入和内部包引用。我当前正在运行Python 2.7.3。因此,我尝试在自己的程序包中实现此功能,以便将其用于更简单的导入。我很惊讶地发现它引发了SyntaxError异常,我希望有人可以帮助您找到原因。 我设置了一个测试目录进行测试: 两个__init__.py模块都为空。其他模块是: 当我尝试导入second_level模块时

    • 问题内容: 我想我发现了一个错误。也许不是,但是Super CSV不能很好地处理。 我正在使用MapReader解析具有41列的CSV文件。但是,我得到的是CSV- 而使我获得CSV的Web服务错了一行。“标题”行是制表符分隔的行,具有41个单元格。 而且“错误的行”是一个由制表符分隔的行,其中包含36个单元格,其内容没有任何意义。 这是我正在使用的代码: 我在上面提到的行中执行mapReader

    • 以下操作会在运行时导致异常: java.lang.VerifyError:操作数堆栈上的类型错误异常详细信息:location:com/sun/net/httpserver/spi/httpserverprovider$1.run()ljava/lang/object;@27:invokestatic原因:类型“sun/net/httpserver/defaulthttpserverprovide

    • 我有一个操作/方法来执行对数据库的插入。它需要几个字段,由于各种原因,操作可能会失败,因为一个或多个输入不是唯一的,或者因为它们与一些需要唯一的内部记录冲突。 反对这种方法的人指出,我们开发团队知道会导致失败的每个错误情况,应该返回错误代码并使用它来处理每个情况。 我看不出检查方法有任何明显的缺点。这些错误情况很有可能发生,您绝对必须在使用saveUserInfo()的任何地方解决它们。似乎正是为

    • 应用程序可以持久化用户,以后可以修改。最近无法修改用户,引发了异常。用户实体被持久化,没有错误或验证。有人知道是什么导致了这种行为,或者我如何找到更多细节吗?

    • (2016.3.15更新) 上周我遇到了一个奇怪的问题,我想和你讨论一下这个问题。 但是,如果我使用sendMessage(SearchHandler.Object...)而不是runOnUiThread,一切都会很顺利!! java: SearchActivity.java: 2)在运行getActivity().runonuithread()之前,首先判断getActivity()==null