X

Multiple dex files define xxxxx

接入360SDK的时候总是报错不同通过编译,之前就遇到过,今天又遇到一次,这里记录下来,以防日后忘记了。

报错信息如下。

[2014-02-17 22:05:51 - Dex Loader] Unable to execute dex: Multiple dex files define Landroid/annotation/SuppressLint; [2014-02-17 22:05:51 - tdhaizei-qh360] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/annotation/SuppressLint;

上面的意思是说,android.annotation.SuppressLint类存在不同版本的定义。

问题原因

APP或其包含的类库中对同一个类(完全限定名相同)有不同的定义。
上面的android.annotation.SuppressLint存在于annotations.jar包中。
下面两个jar最容易被重复包含。

{androidSDK}/tools/support/annotations.jar
{androidSDK}/extras/android/support/v4/android-support-v4.jar

问题解决

去除重复的jar引用及libs中同名的jar就OK了。
在不同的类库中导入相同的jar:

  • 使用引用导入同一个jar
  • 将相同的jar复制到不同类库的libs目录中

This post was last modified on 2019 年 02 月 25 日 01:55

This website uses cookies.