最近在用Bmob,这样自己就剩去了服务器的麻烦,在编码过程中没出什么问题,我最后准备打包发布的时候问题来了,各种包冲突解决了一个又一个。
出现冲突
冲突如下:
Error:Execution failed for task ':app:transformClassesWithJarMergingForRelease'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/gson/annotations/Expose.class
Error:Execution failed for task ':app:transformClassesWithJarMergingForRelease'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: okhttp3/Address.class
暂时只贴这两个吧,还有其他的,如果你导入的三方包越多那么出问题的机率就越大。
解决方法
解决方法就是去除冲突的包咯,那么怎么去除呢?
去除包中的group
例如:
compile ('com.squareup.retrofit2:converter-gson:2.0.2')
{exclude group: 'com.google.code.gson'
exclude group: 'com.squareup.okhttp3' }
以上也只是其中一种。
下面我列出我用到的
compile ('com.squareup.retrofit2:converter-gson:2.0.2')
{exclude group: 'com.google.code.gson'
exclude group: 'com.squareup.okhttp3' }
compile ('com.squareup.retrofit2:adapter-rxjava:2.0.2')
{ exclude group: 'io.reactivex'
exclude group: 'com.squareup.okhttp3' }
compile ('com.squareup.okhttp3:logging-interceptor:3.3.1')
{ exclude group: 'com.squareup.okhttp3' }
提醒
最后我再提一点,就是如果用bmob那么它所带有的三方包就不用额外导入了。如下:
com.google.code.gson:gson
com.squareup.retrofit2:retrofit
com.squareup.okhttp3:okhttp
com.squareup.okio:okio
io.reactivex:rxjava
io.reactivex:rxandroid
使用Bmob就到这里了。
网友评论