【问题标题】:Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'. duplicate entry: com/loopj/android/http/AsyncHttpClient$1.class错误:任务“:app:packageAllDebugClassesForMultiDex”执行失败。重复条目:com/loopj/android/http/AsyncHttpClient$1.class
【发布时间】:2018-05-29 04:21:53
【问题描述】:

我收到重复输入的错误,但我不知道为什么。这是我的 build.grade 文件。

apply plugin: 'com.android.application'

android {
compileSdkVersion 21
buildToolsVersion "21.1.1"

defaultConfig {
    applicationId "com.apppartner.androidprogrammertest"
    minSdkVersion 14
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:21.0.2'
compile 'com.loopj.android:android-async-http:1.4.9'
}

我相信我已经做好了一切准备。我该怎么办?

【问题讨论】:

  • @TONY 你的意思是来自项目结构还是依赖项的代码行?
  • 成功了!非常感谢

标签: android dependencies build.gradle android-multidex


【解决方案1】:

如果项目编译正确,请尝试删除 loopj 库,然后你需要检查你是否有另一个库或 jar 包含与 loopj 相同的类

【讨论】:

  • 如果loopj库编译正确,你如何有条件地删除它?
  • loopj 包含类,另一个库包含相同的类,显然会导致此问题
【解决方案2】:

这个解决方案对我有用。

1.- 移除依赖 compile 'com.loopj.android:android-async-http:1.4.9'.

如果你使用httpclient中的一些类,检查你的导入类,你会看到导入对应包cz.msebera.android,那么你可以将cz.msebera.android的dependecy android-async-http替换

compile group: 'cz.msebera.android', name: 'httpclient', version: '4.4.1.2'

希望对你有所帮助。

【讨论】:

    【解决方案3】:

    您可以从 com/loopj/http 文件夹中删除 AsyncHttpClient.java,然后重新构建项目。我确信其他重复的 java 文件会出现新的错误...您只需将它们一一删除,直到您可以成功构建 apk。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      相关资源
      最近更新 更多