【问题标题】:Duplicate Entry in Android StudioAndroid Studio 中的重复条目
【发布时间】:2015-11-07 13:06:57
【问题描述】:

我能够在 Android Studio 中成功构建项目,但是当我尝试运行应用程序时出现类似“重复条目:android/support/v4/print/PrintHelper$1.class.”的错误,我已经搜索了很多网站并尝试了很多建议但失败了。请帮助我..下面是我的代码。我为此苦苦挣扎了 2 天。

 apply plugin: 'com.android.application'
dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':appcompat_v7')
    compile project(':google-play-services_lib')
    compile project(':Cognalys')
    //noinspection GradleDynamicVersion
    compile 'com.android.support:recyclerview-v7:22.2.+'
}
android {
    compileSdkVersion 22
    buildToolsVersion "23.0.0 rc3"
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
    defaultConfig {
        // Enabling multidex support.
        multiDexEnabled true
    }
    buildTypes {
       release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

【问题讨论】:

    标签: android android-studio duplicates


    【解决方案1】:

    我遇到了同样的错误,我解决了,但我只是把我的情况告诉你;

    我的 bulid.gradle:

    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        compile ('com.android.support:appcompat-v7:22.0.0') 
        compile files('libs/android-async-http-1.4.8.jar')
        compile files('libs/android-support-v4.jar')
        compile files('libs/universal-image-loader-1.9.4-with-sources.jar')
    }
    

    错误是 com.android.support:appcompat-v7:22.0.0 包含 support-v4.jar,所以我将其删除;

    解决 build.gradle:

    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        compile ('com.android.support:appcompat-v7:22.0.0') {
            exclude module: 'support-v4'
        }
        compile files('libs/android-async-http-1.4.8.jar')
        compile files('libs/android-support-v4.jar')
        compile files('libs/universal-image-loader-1.9.4-with-sources.jar')
    }
    

    所以也许你应该检查你的依赖关系,也许你的编译文件有两个文件包括 support-v4

    【讨论】:

    • 感谢您的快速 ripley,但我也尝试过此解决方案。我再次收到“Gradle 找不到方法 exclude()”错误。请帮助我
    • 也试试这个,结合我的答案 compile ('com.google.android.gms:play-services:+'){ exclude module: 'support-v4' }
    • 是的尝试了所有...但没有用..我已经为这个单一的错误挣扎了 2 天。帮助我
    • 感谢您的支持。最后我可以通过从 lib 文件夹中删除 support v4 jar 文件来运行应用程序。
    【解决方案2】:

    这个问题是“重复条目”,当“.java”变成“.class”时,不同的jar可能有相同的类,你的项目可能依赖于许多不同的库,这些库可能有很多jar,所以解决这个问题的关键错误是避免重复jar,尽可能在线使用依赖不是本地jar,所有这些都可以在你的gradle中配置

    例如:compile files('libs/com.nostra13.universalimageloader:universal-image-loader:1.9.5')需要改成compile'c​​om.nostra13.universalimageloader:universal-image-loader: 1.9.5'。

    如果您必须使用本地 jar,请确保在您的项目中以及该项目所依赖的库共享一个 jar。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      相关资源
      最近更新 更多