我有一个工作应用程序,刚刚更新到昨天的 SDK 工具版本 v22.2。从那以后,我一直无法在设备上运行该应用程序。我发现默认情况下未导出 Android 私有库的问题,因此更正了该问题,随后出现“无法转换为 Delvyk,dex 失败......堆......”错误。多次重建类路径,重新导入google-play-services项目(复制到工作区),修改构建设置等,仍然无法让应用程序在设备上运行。然后我尝试用 ant 构建,然后手动安装 apk。这种方法导致应用程序运行,但立即遇到此问题:此应用程序不会运行,除非您更新 Google Play 服务
即使我没有修改现有的依赖项,我也重新挖掘了我的构建路径,并注意到 google-play-services-lib.jar 包含在 Android Dependencies 下,这是我希望它基本上被赋予的地方项目依赖项,也显示在 Android Private Libraries 下。
这是我的.classpath:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
<classpathentry combineaccessrules="false" kind="src" path="/anKHToolbox"/>
<classpathentry combineaccessrules="false" kind="src" path="/google-play-services_lib"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>
我有另一个工作区项目依赖项(anKHToolbox),配置相同,但不这样做。在“导出和订购”选项卡下快速测试禁用 Android 私有库,应用程序启动到设备,但显然由于缺少依赖项而死机。
我认为这两种结果 - dex 堆失败,以及更新 Google Play 服务的提示,都与 jar 被引用两次的情况完全相关。我发现另一个可能相关的问题Unable to execute dex: Multiple dex files define Lcom/myapp/R$array; 但不确定解决方案是什么,或者它是否实际上与开始有关。
其他人可以确认这一点,或者告诉我我需要做哪些我错过的改变吗?我开始认为这是一个潜在的错误。谢谢大家。