写一个uinapp的插件,用到Android一个第三方ocr识别库,讲aar放到uni-app的Android目录下,云打包就会提示包冲突,打包失败。好像是这个aar文件有okhttp的网络库,我把okhttp库删掉,就可以打包成功,但是这个这个ocr识别库就用不了了。我感觉应该是aar里面的okhttp网络库和uni-app里面的网络库冲突了,大家有遇到的吗?这种情况应该怎么解决呢?很多aar包里面都带网络库了,这种问题应该很常见吧。
异常如下:
Appid: UNIE0C8F00
FAILURE: Build failed with an exception.
-
What went wrong:
Execution failed for task ':transformClassesWithMultidexlistForRelease'.com.android.build.api.transform.TransformException: Error while generating the main dex list.
-
Try:
Run with --debug option to get more log output. Run with --scan to get full insights. -
Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':transformClassesWithMultidexlistForRelease'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
4 个回复
8***@qq.com
我也遇到同样问题
DCloud_Android_ST
看下第三方的库用到了那个版本的okhttp
街道书记 (作者)
第三方的okhttp版本是2.7.5
2019-07-17 18:01
街道书记 (作者) - 一个只会写helloworld的程序猿
好像通过module依赖
DCloud_Android_ST
找下版本 目前主项目依赖的com.squareup.okhttp:okhttp:2.3.0
2019-07-17 17:32
街道书记 (作者)
回复 DCloud_Android_ST: 您好,打包失败是不是跟这个okhttp冲突有关系?
2019-07-17 17:36
DCloud_Android_ST
回复 街道书记:看你这种情况应该是 可能okhttp版本冲突。目前没有好的解决方案。
2019-07-17 17:40
街道书记 (作者)
回复 DCloud_Android_ST: 这个的原因应该是,有okhttp就会冲突吧。我用Android Studio测试你们的官方的时候,把app.gradle的okhttp注释掉,是可以运行的。插件也是可以用的。放出来的话,我as本地运行也报错了,换版本号也不行。看下图
2019-07-17 17:43
街道书记 (作者)
回复 DCloud_Android_ST: 难道你们的打包环境里面用了okhttp的库,aar包里面就不能用了吗?其他的第三方库也是这样吗?我给主app的okhttp换成okhttp3,as是可以编译运行的
2019-07-17 17:50
街道书记 (作者)
回复 DCloud_Android_ST: 离线打包能解决这个问题吗?离线打包里面的第三方库我自己可以修改吗?
2019-07-17 17:51
DCloud_Android_ST
回复 街道书记: 你随意修改主app的okhttp 会导致主项目的部分逻辑无发正常运行的
2019-07-17 17:52
街道书记 (作者)
回复 DCloud_Android_ST: 难道现在就没有解决okhttp冲突的方案吗?你们官方的写的第三方插件没遇到这个问题?网络库冲突应该很常见啊。大佬,给想想办法啊,项目进行不下去了
2019-07-17 17:59
DCloud_Android_ST
回复 街道书记: 目前没有我们也在着手避免这样的问题。
2019-07-17 18:07
DCloud_Android_ST
回复 街道书记: 写的插件都是基于com.squareup.okhttp:okhttp:2.3.0去适配的。
2019-07-17 18:08
街道书记 (作者)
回复 DCloud_Android_ST: 我昨天冲突的第三方的okhttp版本是2.7.5
2019-07-18 09:25
街道书记 (作者) - 一个只会写helloworld的程序猿
注释掉,我as本地可以正常运行到手机。放出来和换版本号都不能运行。