transformClassesWithJarMergingForDebug
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/gson/annotations/Expose.class
当使用maven导入依赖时,可能会出现不同的依赖包含了同一个jar,在编译期间不会报错。可一旦run app的时候,就会报
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: xxx.class
- 1
- 2
解决的方法是在引入依赖的时候把相同的jar去除掉。
比方说,我同时引入了bmob和retrofit2的依赖
compile ('cn.bmob.android:bmob-sdk:3.5.1')
compile ('com.squareup.retrofit2:retrofit:2.1.0')
compile ('com.squareup.retrofit2:converter-gson:2.1.0')
- 1
- 2
- 3
因为bmob底层也是通过引入okhttp来实现的,所以我报的错是:
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/gson/annotations/Expose.class
- 1
- 2
这时候我们可以发现
com/google/gson/annotations/Expose.class
- 1
最后面有一个Expose.class
我们可以通过Search Everywhere去定位这个类(默认快捷键是双击shift)。
看,通过搜索的确发现了两个一模一样的类,而且来自不同的依赖,而重复的类库正是gson。此时再回想起我刚刚是不是添加过一个
compile ('com.squareup.retrofit2:converter-gson:2.1.0')
- 1
好了,找到问题的根源的。那我们现在如何去除相同的类库呢,很简单:
在AS中,选择以project显示项目,找到最下面的External Libraries,然后继续找,找到相对应的类库:
如图依次点开之后发现了一个pom.xml,这里面就是关于这个jar的一些配置文件,点开之后长这个样子
往下找,发现了一个gson的引用
没错,这个就是导致报错的直接原因。复制里面groupId,到你的app的build.gradle里,找到那个依赖,添加{exclude group: 'com.google.code.gson'}
把这个groudId的引用去除掉。如下图所示
好了,到此问题就解决了,如果你有多个重复依赖的话,就按照本文所给出的方法,一个一个去重
transformClassesWithJarMergingForDebug的更多相关文章
- app:transformClassesWithJarMergingForDebug uplicate entry: android/support/v4/app/BackStackState$1.class
.Execution failed for task ':app:transformClassesWithJarMergingForDebug'.> com.android.build.api. ...
- Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug
这几天eclipse 项目迁移 android studio Error:Execution failed for task ':app:transformClassesWithJarMergingF ...
- 【踩坑速记】二次依赖?android studio编译运行各种踩坑解决方案,杜绝弯路,总有你想要的~
这篇博客,只是把自己在开发中经常遇到的打包编译问题以及解决方案给大家稍微分享一下,不求吸睛,但求有用. 1.大家都知道我们常常会遇到dex超出方法数的问题,所以很多人都会采用android.suppo ...
- android常犯错误记录
错误:Error:Error: Found item Attr/border_width more than one time 这个容易,属性相同了,按照提示查询一下找出来删了就行了,注意大小写很容易 ...
- Android开发各类常见错误解决方案
本文属于个人平时项目开发过程遇到的一些问题,记录下来并总结解决方案,希望能帮到大家解决问题,有些问题的解决方案是在StackoverFlow上找到的,建议大家遇到问题多去上面找,基本上都能找到解决方案 ...
- android studio 各种问题
1.dexDebug ExecException finished with non-zero exit value 2 全bug日志如下: (Error:Execution failed for t ...
- Android项目实战(三十九):Android集成Unity3D项目(图文详解)
需求: Unity3D 一般用于做游戏 而且是跨平台的.原本设计是Android 应用端A(原生开发)进行一些业务处理,最后由A 打开Android 应用端B(Unity3D 游戏开发)进行游戏操作. ...
- Android studio 编译出现的问题记录
1.app:transformClassesWithJarMergingForDebug'. Error:Execution failed for task ':app:transformClasse ...
- android常犯错误记录(一)
错误:Error:Error: Found item Attr/border_width more than one time 这个容易,属性相同了,按照提示查询一下找出来删了就行了,注意大小写很容易 ...
随机推荐
- 解决jar包乱码 in 创新实训 智能自然语言交流系统
今天用eclipse的fat jar插件,打成jar包.之后再命令行运行...程序的功能是切分大的文件...结果是切分的很正确,但是里面的中文都变成了乱码. 最开始以为是在Eclipse中的编码设置有 ...
- SpannableString属性详解
1.BackgroundColorSpan 背景色 2.ClickableSpan 文本可点击,有点击事件 3.ForegroundColorSpan 文本颜色(前景色) 4.Ma ...
- Linux之安装本地Python和pip
wget https://www.python.org/ftp/python/3.4.5/Python-3.4.5.tgz tar zxfv Python-3.4.5.tgz ./configure ...
- Python之排序
1. 2维数组排序 (按照每行第一个数字从小到大进行排序) poses.sort(key=lambda x: x[0]) for ppp in poses: print ppp,','
- 【转】【Centos】nginx配置:location配置方法及实例详解
location匹配的是nginx的哪个变量? $request_uri location的匹配种类有哪些? 格式 location [ 空格 | = | ~ | ~* |^~ | !~ | !~* ...
- (笔记)boa服务器make错误
编译一个linux下的c系统,包含词法和语法分析模块,Linux上用bison和flex.yacc是一个文法分析器的生成器,bison即是yacc的GNU版本.Lex和YACC是用于构造词法分析机和语 ...
- Prolog学习:数独和八皇后问题
上一篇简单介绍了下Prolog的一些基本概念,今天我们来利用这些基本概念解决两个问题:数独和八皇后问题. 数独 数独是一个很经典的游戏: 玩家需要根据n×n盘面上的已知数字,推理出所有剩余空格的数字, ...
- Java如何处理异常方法?
在Java编程中,如何处理异常方法? 本例展示了如何使用System类的System.err.println()方法处理异常方法. package com.yiibai; public class E ...
- JDBC是什么?
JDBC代表Java数据库连接(Java Database Connectivity),它是用于Java编程语言和数据库之间的数据库无关连接的标准Java API,换句话说:JDBC是用于在Java语 ...
- Maven POM
POM代表项目对象模型.它是 Maven 中工作的基本单位,这是一个 XML 文件.它始终保存在该项目基本目录中的 pom.xml 文件.POM 包含的项目是使用 Maven 来构建的,它用来包含各种 ...