Android开发之包冲突解决

原创 2016年08月29日 00:31:07

通过Maven中央库添加第三方jar包的时候,出现了重复加载jar包的问题,解决办法很简单去掉一个不让它去加载就OK了

一、错误

<span style="font-size:14px;">Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
	F:\zsl\sdk\build-tools\21.1.2\dx.bat --dex --output F:\zsl\Android\pro\RecipesDaquan\app\build\intermediates\dex\debug --input-list=F:\zsl\Android\pro\RecipesDaquan\app\build\intermediates\tmp\dex\debug\inputList.txt
Error Code:
	2
Output:
	UNEXPECTED TOP-LEVEL EXCEPTION:
	com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs;
		at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
		at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
		at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
		at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
		at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
		at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
		at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
		at com.android.dx.command.dexer.Main.run(Main.java:246)
		at com.android.dx.command.dexer.Main.main(Main.java:215)
		at com.android.dx.command.Main.main(Main.java:106)</span>

从上述错误中我们可以看到support_v4的包重复加载编译了,我们看一下gradle-app文件

\

<span style="font-size:14px;"><"/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHByZSBjbGFzcz0="brush:java;">
dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
compile 'com.android.support:appcompat-v7:21.0.0' 
compile 'in.srain.cube:cube-sdk:1.0.42.1' 
compile files('libs/android-async-http-1.4.6.jar')
}
其中引入了v7的包后会自动去加载编译一个v4:21.0.0包,而在in.srain.cube:cube-sdk:1.0.42.1库中也有一个v4的包,
所以我们需要去掉一个</span>

看一下,libraries是否是我们所讲的那样,重复加载v4包

\

二、解决办法

<span style="font-size:14px;">dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.0'
    compile ('in.srain.cube:cube-sdk:1.0.42.1'){
        exclude module: 'support-v4'
    }
    compile files('libs/android-async-http-1.4.6.jar')
}</span>

去掉in.srain.cube:cube-sdk:1.0.42.1中的包不加载即可。

注意:如果SDK 或者module中加载v4包的方式是使用加载jar包的方式 ,那么就在app的build.gradle使用下面的方式加载v4包

<span style="font-size:14px;">compile 'com.android.support:support-v4:24.2.0'</span>
然后删除libs中的v4jar包就可以解决问题了
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android的apk安装时签名相同冲突解决

如果两个应用程序, 包名相同, 但是签名不同, 就无法覆盖安装 正式签名 1. 有效期比较长,一般大于25年 2. 需要设置密码 3. 正式发布应用时,必须用正式签名来打包 测试签名(debug...

DEX 方法超过64K限制和gradle编译OOM问题解决

如果你是一个Android开发者,你至少听说过的Dalvik的蛋疼的64K方法限制。概括地说,在一个DEX文件,你可以调用很多的方法,但你只能调用它们最前面的65,536个 ,因为这是在方法调用集合中...

android 架包冲突解决方案

如果发生架包冲突,第一先把所有版本统一,包括sdk。第二,去libraries查看冲突的架包,然后删除其中一个架包!

Android Studio jar包冲突

利用如下的方式获取:dependencies { provided files(getLayoutLibPath()) provided files(getAndroidPath())...

安卓开发之引入第三方库导致jar包冲突解决办法

这几天的任务是将mapbox的工程合到程序中去,但是合并过程却出现了问题合并方法: 在app的build.gradle中添加dependencies { compile ('com.mapb...

Android Studio 重复jar包冲突问题

Android Studio:Multiple dex files define Landroid/support/annotation/AnimRes 导入一个新项目,同时用到了v4,v7都...

[Android] 解决android多jar包R冲突问题

解决项目中R资源找不到,xml提示确实,找不到对应符号的问题

Android Studio 包冲突的解决方法

Android Studio 中包冲突,即多个项目引用的相同的jar包1、cache.xml中查看那个那个项目下的jar包不一样,即定位是哪个jar包引起的冲突。cache.xml文件的路径:2、如果...

Android Studio Jar包冲突解决方案

com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileExcep...

Android Studio 包冲突的解决方法

Android Studio下面有时候会出现包含多个相同类,即多个项目引用的相同的jar包,可以通过以下方法查找相同的jar包。**1、cache.xml中查看那个那个项目下的jar包不一样,即定位是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)