PingPlusPlus / pingpp-android

414 stars 190 forks source link

使用了最新版后在给打包APK时会报一个alipay的类冲突 #44

Closed zzpuser closed 6 years ago

dong11 commented 7 years ago

@zzpuser 有Log吗??

zzpuser commented 7 years ago

我引用了 //ping++SDK compile 'com.pingxx:pingpp-core:2.1.9' //必须添加 compile 'com.pingxx:pingpp-alipay:2.1.9' //使用支付宝时添加 compile 'com.pingxx:pingpp-wxpay:2.1.9' //使用微信支付时添加 LOG如下:

Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Lcom/alipay/a/a/i;

Error:Execution failed for task ':app:transformClassesWithDexForOtherDebug'.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException

解决方法:将所有版本改为2.1.8即可正常打包

在 2017-03-09 13:10:57,"hwongrex" notifications@github.com 写道:

@zzpuser 有Log吗??

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

dong11 commented 7 years ago

@zzpuser 你在试试2.1.9的 可能上传到jcenter上有缓存

senlinxuefeng commented 7 years ago

@dong11 我的在打包的时候也出现问题了

dong11 commented 7 years ago

@senlinxuefeng 你把本地的缓存去一下 再试试

senlinxuefeng commented 7 years ago

@dong11 我是刚集成了,clean也不管用

dong11 commented 7 years ago

@senlinxuefeng 报什么错?

senlinxuefeng commented 7 years ago

@dong11

dong11 commented 7 years ago

@senlinxuefeng 把gradle下的缓存去一下就行

senlinxuefeng commented 7 years ago

@dong11 ./gradlew clean 清理之后还是不管用,要怎么清理才行呢?

dong11 commented 7 years ago

@senlinxuefeng 这个是清理项目的

file

查看一下存放的路径 将pingpp-alipay删除 或者将整个gradle的缓存文件删除就行

senlinxuefeng commented 7 years ago

@dong11 删除后再次打包,还是不行 image

dong11 commented 7 years ago

@senlinxuefeng 你确定删干净了?? 我集成是只有一个的, 你可能没删干净,或者你简单的新建一个项目重新集成一下试试

senlinxuefeng commented 7 years ago

@dong11 我在一个新的工程中集成的就是这样,出现两个版本 image

dong11 commented 7 years ago

@senlinxuefeng 不会啊 我新建了好几个项目,都没有错,你可以在pingpp-alipay右键查看路径,

file

删除com.pingxx这个目录就行

senlinxuefeng commented 7 years ago

@dong11 我这边删掉后一编译就出两个,最后还是通过导入工程引用,好使了

yulindyy commented 7 years ago

同样的问题,help image

Error:Execution failed for task ':autosos:transformClassesAndResourcesWithProguardForRelease'.

java.io.IOException: Can't write [F:\YuLinForWork\autosos\autosos\build\intermediates\transforms\proguard\release\jars\3\1f\main.jar] (Can't read [F:\YuLinForWork\autosos\autosos\build\intermediates\exploded-aar\com.pingxx\pingpp-alipay\2.1.9\jars\libs\alipaySingle-20161222.jar(;;;;;;**.class)] (Duplicate zip entry [alipaySingle-20161222.jar:com/alipay/android/app/IAlixPay$Stub$a.class]))

弄了老半天了,看提示是混淆问题啊

dong11 commented 7 years ago

@yulindyy (Duplicate zip entry)看一下项目中是不是其他地方也含有alipay相关的库

zzpuser commented 7 years ago

没。。没引用支付宝的sdk。这个问题是很早很早之前的了,现在已经解决了😂

发自我的 iPhone

在 2017年6月20日,15:47,hwongrex notifications@github.com 写道:

@yulindyy (Duplicate zip entry)看一下项目中是不是其他地方也含有alipay相关的库

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

SunnyEver0 commented 5 years ago

@dong11 你好,项目中本来已经有alipay的库了,但是引用的另一个三方库aar包又包含alipay的,现在报(Duplicate zip entry),这个该怎么解决呢?谢谢!

dong11 commented 5 years ago

@SunnyEver0 取消 Ping++ 的 alipay 的引用就可以

SunnyEver0 commented 5 years ago

@dong11 谢谢你,你的意思是改这个ping++的源码,然后再重新打一个ping++的包吗?我们还想继续使用ping++中关于alipay的功能呢,另一个三方库是国外的,又不太好让他们剔除哈。这种情况怎么解决好一点呢

dong11 commented 5 years ago

@SunnyEver0 不用改源码 移除这个就行 compile 'com.pingxx:pingpp-alipay:2.1.18' // 使用支付宝时添加

SunnyEver0 commented 5 years ago

@dong11 那移除之后ping++中的alipay功能是不是就不能使用了哎,我们还想继续使用这里面的alipay的功能呢🤣

dong11 commented 5 years ago

@SunnyEver0 可以的 只要你项目中有 alipay 的就行

SunnyEver0 commented 5 years ago

@dong11 好的,灰常感谢!我再试试

SunnyEver0 commented 5 years ago

@dong11 我这里报找不到alipay的包的错呢 Full recompilation is required because at least one of the classes of removed jar 'alipaySdk-20180403.jar' requires it. Analysis took 0.021 secs.

我现在项目只引入了那个三方的aar哈,那个aar里面有alipay的包。

dong11 commented 5 years ago

@SunnyEver0 你是怎么依赖 Ping++ SDK 的?

SunnyEver0 commented 5 years ago

@dong11 我们是react-native的项目哈,我把它包装成了一个子项目,然后引入进来的。我们第三方的aar包也是包装成了一个子项目,引入的。

dong11 commented 5 years ago

@SunnyEver0 把 Ping++ 里面封装成子项目 里面 怎么依赖 Ping++ SDK 的?

SunnyEver0 commented 5 years ago

@dong11 在这个子项目里面引入Ping++ SDK,然后包装了一层func给外部调用的哈

dong11 commented 5 years ago

@SunnyEver0 你怎么移除 Ping++ 中的 alipay 的?

SunnyEver0 commented 5 years ago

按你说的那样,把compile 'com.pingxx:pingpp-alipay:2.1.18'这个移除了

dong11 commented 5 years ago

@SunnyEver0 alipaySdk-20180403.jar 应该被你在哪里引用了吧 Ping++ SDK 里是没有这个的

SunnyEver0 commented 5 years ago

@dong11 噢噢,好的,我检查一下,非常感谢!