我使用的是外部库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'
}