Android Studio中如何解决重复依赖导致的app:transformClassesWithJarMergingForDebug
2017-02-08 18:58
579 查看
当使用maven导入依赖时,可能会出现不同的依赖包含了同一个jar,在编译期间不会报错。可一旦run app的时候,就会报
解决的方法是在引入依赖的时候把相同的jar去除掉。
原网址 点击打开链接
比方说,我同时引入了bmob和retrofit2的依赖
因为bmob底层也是通过引入okhttp来实现的,所以我报的错是:
这时候我们可以方向,最后面有一个Expose.class
我们可以通过Search Everywhere去定位这个类(默认快捷键是双击shift)。
看,通过搜索的确发现了两个一模一样的类,而且来自不同的依赖,而重复的类库正是gson。此时再回想起我刚刚是不是添加过一个
好了,找到问题的根源的。那我们现在如何去除相同的类库呢,很简单:
在AS中,选择以project显示项目,找到最下面的External Libraries,然后继续找,找到相对应的类库:
如图依次点开之后发现了一个pom.xml,这里面就是关于这个jar的一些配置文件,点开之后长这个样子
往下找,发现了一个gson的引用
没错,这个就是导致报错的直接原因。复制里面groupId,到你的app的build.gradle里,找到那个依赖,添加
把这个groudId的引用去除掉。如下图所示
好了,到此问题就解决了,如果你有多个重复依赖的话,就按照本文所给出的方法,一个一个去重。
//当时一着急直接把多余jar删了 接着又报错了
Java.lang.NullPointerException(no error message)
升级NDK
build.gradle中的sourceSets导致
删除项目中的 .idea文件夹和所有的 .iml 文件后重新导入项目
但这几个办法都不适用,后来发现更改本地的配置文件解决了问题:
进 local.properties 中把 ndk.dir 直接删除禁用,然后clean–rebuild 就可以了
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: xxx.class
解决的方法是在引入依赖的时候把相同的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')
因为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
这时候我们可以方向,最后面有一个Expose.class
我们可以通过Search Everywhere去定位这个类(默认快捷键是双击shift)。
看,通过搜索的确发现了两个一模一样的类,而且来自不同的依赖,而重复的类库正是gson。此时再回想起我刚刚是不是添加过一个
compile ('com.squareup.retrofit2:converter-gson:2.1.0')
好了,找到问题的根源的。那我们现在如何去除相同的类库呢,很简单:
在AS中,选择以project显示项目,找到最下面的External Libraries,然后继续找,找到相对应的类库:
如图依次点开之后发现了一个pom.xml,这里面就是关于这个jar的一些配置文件,点开之后长这个样子
往下找,发现了一个gson的引用
没错,这个就是导致报错的直接原因。复制里面groupId,到你的app的build.gradle里,找到那个依赖,添加
{exclude group: 'com.google.code.gson'}
把这个groudId的引用去除掉。如下图所示
好了,到此问题就解决了,如果你有多个重复依赖的话,就按照本文所给出的方法,一个一个去重。
//当时一着急直接把多余jar删了 接着又报错了
Execution failed for task ‘:transformNative_libsWithStripDebugSymbolForDebug’.
Java.lang.NullPointerException(no error message)
空指针异常,说是studio升级到2.2后的Bug.。网上找了几个办法:
升级NDKbuild.gradle中的sourceSets导致
删除项目中的 .idea文件夹和所有的 .iml 文件后重新导入项目
但这几个办法都不适用,后来发现更改本地的配置文件解决了问题:
进 local.properties 中把 ndk.dir 直接删除禁用,然后clean–rebuild 就可以了
相关文章推荐
- Android Studio中如何解决重复依赖导致的app:transformClassesWithJarMergingForDebug
- Android Studio中如何解决重复依赖导致的app:transformClassesWithJarMergingForDebug
- Android Studio中如何解决重复依赖导致的app:transformClassesWithJarMergingForDebug
- android studio 导致的v4包冲突的解决app:transformClassesWithJarMergingForBaiduDebug
- 问题解决Android studio遇到 java.lang.OutOfMemoryError: GC app:transformClassesWithDexForDebug解决方法 以及gradle优化
- 如何解决error:execution failed for task app:transformclasseswithjarmerging
- Android Studio出现 app:TransformClassesWithJarMergingForRelese java.util.zip.ZipException: duplic的解决办法
- 如何解决编译时Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
- Android Studio中异常”Execution failed for task ':app:transformClassesWithDexForDebug'.”的解决办法
- Android使用百度地图多个jar,导致类冲突Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug
- Android studio遇到 java.lang.OutOfMemoryError: GC app:transformClassesWithDexForDebug解决方法 以及gradle优化
- 如何解决error:execution failed for task app:transformclasseswithjarmerging(包冲突)
- 解决 app:transformClassesWithDexForDebug 错误
- [置顶] Android Studio编译时Error: app:transformClassesAndResourcesWithProguardFor 的解决
- Error:Execution failed for task ':app:transformClassesWithDexForDebug'解决记录
- Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug
- 解决 Android 编译报错:Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
- 完美解决Error:Execution failed for task ':APP:transformClassesWithDexForDebug'...问题
- androidstudio app:transformClassesWithDexForDebug问题解决
- 解决编译问题 Error:Execution failed for task ':app:transformClassesWithDexForDebug'.