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包就可以解决问题了
版权声明:本文为博主原创文章,未经博主允许不得转载。

安卓App上架问题:包名冲突

我上传的时候就遇到了这个问题,应用商城的App何止几百万,如果包名太简单是很容易出现冲突的。 我的项目 解决办法: 修改包名 在对应的包上右键,选择Refactor--->...

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

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

Android手机出现"已安装了存在签名冲突的同名数据包"的原因及解决办法

如果你不是开发者:如果你在android上更新一个已经安装过较早版本软件时,安装到最后一步提示你:已安装了存在签名冲突的同名数据包,然后安装失败。这是因为旧版软件的签名信息与新版不一致造成的。你可以卸...

Android Studio 包冲突解决方法

在为项目加入环信时遇到了包冲突 library:easeui-sdk3.0 环信和原先的项目都使用到了glide,版本不一致,重复引发了冲突 1.如何查找哪个jar冲突了a.一般如果冲突了,在编...

Android studio value 2 (com.android.dex.DexException:资源重复引用或者加载问题)

因为使用Android studio 开发支付宝功能 遇到了很多开发异常情况 所以决定下功夫 总结一下 首先 Error:Execution failed for task ':app:de...

Android问题集锦之三十六:com.android.dex.DexException: Multiple dex files define

完整的log如下:Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.internal.LoggedEr...

Android之failed for task ':app:dexDebug'致gradle编译OOM问题解决(android-support-multidex)

当我们的业务越来越多,项目里面的方法和第三方的jar包也会越来越多,然后昨晚就遇到了下面这个问题 UNEXPECTED TOP-LEVEL EXCEPTION: at com....

Error:java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major错误解决

Information:Gradle tasks [:app:clean, :app:generateDebugSources, :app:prepareDebugUnitTestDependenci...

Android编译中遇到的问题

1、在编译过程中出现Java虚拟机内存不够的问题 编译的错误如下

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

这几天的任务是将mapbox的工程合到程序中去,但是合并过程却出现了问题合并方法: 在app的build.gradle中添加dependencies { compile ('com.mapb...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android开发之包冲突解决
举报原因:
原因补充:

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