无法执行dex:多个dex文件定义了Lcom/google/android/gms/analytics/internal/Command。

11

昨晚我更新了我的Android SDK(31.4),之后我就无法再编译我的应用程序了。 我收到了以下错误:

[2015-05-01 14:36:24 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/google/android/gms/analytics/internal/Command$1;
[2015-05-01 14:36:24 - SoFit] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/google/android/gms/analytics/internal/Command$1;

我没有改变我的桶里的任何东西。这是我的libs结构:

enter image description here

我尝试了以下操作: - 清理项目。 - 重启eclipse。 - 删除bin文件夹。 - 移除私有库。

我还尝试移除Google分析jar包,因为我认为最近的Google Play服务更新已经将分析器放入了库中。但由于缺失类而无法编译。

我猜测与Google Play服务有关的问题,但我找不到原因。

4个回答

19

尝试从您的libs目录中删除"libGoogleAnalyticsServices.jar"文件,并更新代码,因为v2不再支持。然后进行清理并运行项目即可。一切都会顺利进行。


太棒了,这个很有效!我错过了gradle.build中依赖项的第一行: compile fileTree(include: ['*.jar'], dir: 'libs') - peresisUser

6

Google分析V2不再受支持... 我必须使用包含在Google服务中的V4。


6

从你的构建中移除 libGoogleAnalyticsServices.jar 并添加 Google Play Services。

最低要求配置:

compile 'com.google.android.gms:play-services-base:7.5.0'
compile 'com.google.android.gms:play-services-analytics:7.5.0'

0

答案的一部分来自WhiteHorse:在我的情况下,问题是因为我更新了Google Play服务库,并且它现在提供了最新的(v4)版本的Analytics。然而,仅仅删除旧的jar文件是不够的,因为v4的Analytics与之前的版本(在我的情况下是v2)并不完全相同。我所做的是:

  1. 从依赖项和libs/中删除libAnaliticsV2.jar
  2. 创建一个新的EasyTracker类:在这里查看
  3. 快速更改我的应用程序中对EasyTracker的引用

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接