JacksonzhangDC
JacksonzhangDC
  • 发布:2020-02-17 16:12
  • 更新:2021-08-18 11:26
  • 阅读:1756

Android app 云打包 so文件冲突

分类:uni-app

uniapp自带的视频播放组件和第三方原生插件共用了一个so文件,导致云打包失败。
错误信息为 More than one file was found with OS independent path 'lib/armeabi-v7a/libijkplayer.so'
百度了一下,发现可以在build.gradle内加入设置如下解决:

packagingOptions {  
    pickFirst 'lib/armeabi-v7a/libijkplayer.so'  
}

不知云打包是否支持这个设置

2020-02-17 16:12 负责人:无 分享
已邀请:
屠龙

屠龙 -

该问题已经完美解决。方法如下:

1.如果你的so和uni-app的so文件版本一样,那么云打包的时候把你的so文件删除掉就可以了
2.如果你的so和uni-app的so文件版本不一致,还是删除你的so文件,云打包,如果ok那就可以了,如果不ok,转方法3
3.把你的so的引用进行名字更换,让云编译不发生冲突,修改so信息的软件看:https://github.com/NixOS/patchelf,需要在linux运行,如何编译安装git的帮助有。修改方法参考文章:https://www.cnblogs.com/willhua/p/11479014.html

  • 词典典

    请问具体是怎么操作的呢,修改名字之后会导致原来第三方sdk找不到依赖吗?

    2021-03-31 02:23

  • 五茶

    大佬!我也是这样!救救我们吧!

    2021-03-31 02:26

  • 五茶

    解决了,用patchelf更改那个冲突的soname就行.

    补充:mac系统可以使用patchelf: brew install patchelf

    2021-03-31 13:45

l***@163.com

l***@163.com - 萌新,请多多关照

我也遇到了,请问楼主解决了吗?

屠龙

屠龙 -

把你自己的jar或者aar文件中的这些so文件删除掉,再打包,我打包成功了

屠龙

屠龙 -

又发现问题了,我的so文件更新一定,用uni的so程序闪退,又卡壳了。大家有没有更好的办法?

1***@qq.com

1***@qq.com

垃圾啊,为啥我不能本地打呢

2***@qq.com

2***@qq.com

本地打包可以,不支持云端打包,官方能不能修改一下啊

该问题目前已经被锁定, 无法添加新回复