在android studio中编译项目时,出现重复条目:com/android/skill/AuthFailureEr



我使用的是外部库payu money sdk和linkedin sdk,它们都使用了截击库,在编译项目时会提供AuthFailureError.class 的重复条目

错误:任务":app:packageAllDebugClassesForMultiDex"的执行失败。

java.util.zip.zip异常:重复条目:com/android/skill/AuthFailureError.class"

我还添加了以下代码来排除模块,但仍然存在相同的错误

configurations{ all*.exclude module: 'com.android.volley' }

请帮助

我偶然发现了同样的错误,在阅读了这篇文章后,我解决了它

尝试在应用程序目录build.gradle文件-中添加此行

android{
configurations {
    all*.exclude group: 'com.android.volley'
}}

希望这能有所帮助。

当我试图生成APK(发行版)时遇到了这个问题,我通过更改sdkbuild.gradle:中的链接解决了这个问题

发件人:

dependencies {
    compile 'com.android.support:support-annotations:20.0.0'
    compile 'com.android.support:support-v4:21.0.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile files('libs/volley.jar')
    androidTestCompile('junit:junit:4.12') }

收件人:

dependencies {
    compile 'com.android.support:support-annotations:20.0.0'
    compile 'com.android.support:support-v4:21.0.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.volley:volley:1.0.0'
    androidTestCompile('junit:junit:4.12') }

在渐变文件的defaultConfig部分添加multiDexEnabled true

然后,

在依赖项中编译"com.android.support:multex:1.0.1"

最后在您的应用程序类中添加以下内容:

 @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

此外,请检查您是否正在libs文件夹中使用volley.jar。如果是,请删除该jar文件,然后重新编译。有时,jar依赖关系与使用远程源代码编译的依赖关系冲突。

这是一个在gradle中存在重复条目时如何排除依赖项中的类的示例。

 compile ('com.google.api-client:google-api-client-android:1.17.0-rc') {
    exclude module: 'httpclient'
 }

或者试着用你的方式添加更多的文本

configurations {
     all*.exclude group: 'com.android.support', module: 'support-v4'
}

所以,现在你要做的是

在android studio中搜索CTRL+SHIFT+N以查找类AuthFailureError.class查看哪个jar包含这个,并像上面一样删除它(这只是一个例子/你必须找出重复的类并手动删除它)

只需删除重复的jar文件(注意:使用新版本,删除旧版本),即可在build.gradle中导入"com.android.s凌空.AuthFailureError"。然后清理项目并重建项目,然后运行即可得到结果。

我在Jenkins上构建时遇到了类似的问题,奇怪的是,它在我的本地机器上运行良好。在添加下面的exclude之后,它在本地机器和Jenkins上都有效。

android{
configurations {
    all*.exclude group: 'com.android.volley'
}}

我已经在安卓部分的应用程序build.gradle中添加了配置块。

如果重要的话,编译SDK版本是22,构建工具版本是25.0.0

这很有魅力。

好的,我得到了我的答案

在mac上,而不是控制n,它是命令0,我需要的命令是

配置{all*.exclude模块:'截击释放'}

只需将您的截击库从dependency中删除即可。尝试清理和重建项目,它对我有效。例如payusdk也实现了截击库,所以这就是异常显示重复条目的原因。我希望它能起作用。因为我也发现了这个错误,我做了这些事情,它就起作用了。谢谢

在Android studio终端中使用以下命令来获取依赖冲突数据-[替换为您的应用程序名称]

./gradlew -q :<app>:dependencyInsight --dependency volley --configuration compile

如果你正在使用安卓系统的最新Volley库[https://github.com/google/volley/releases],在build.gradle文件中的每个有冲突的编译库条目下添加以下两行。

例如:

compile('com.xyz:abc:1.1.0-RELEASE') {
        exclude module: 'library'
        exclude group: 'com.mcxiaoke.volley'
}

相关内容