Android 依赖冲突问题的正确姿势?

2019-12-31 11:51:41 +08:00
 raiz

项目原来使用 Exoplayer 作为播放器; 现在引入 Mozilla 的 GeckoView 作为 webview ( https://firefox-source-docs.mozilla.org/mobile/android/geckoview/consumer/docs/geckoview-quick-start.html ). 谁料到 GeckoView 竟然直接复制了一份 Exoplayer 的源码在源码库里,而且还是旧版本,包名没改,这下冲突了。 所以 gradle 有没有办法让 GeckoView 不要把 ExoPlayer 暴露出来,自己内部用。 不然我只能改源码? 附其他开发者的心声: https://bugzilla.mozilla.org/show_bug.cgi?id=1523544

5691 次点击
所在节点    Android
7 条回复
0DBBFF
2019-12-31 11:55:18 +08:00
关键字 exclude group
raiz
2019-12-31 13:28:51 +08:00
@0DBBFF 尝试过,做不到,因为 GeckoView 不是通过 maven 依赖公共库的方式依赖的 ExoPlayer,而是复制了一份源码在代码树下。
raiz
2019-12-31 13:29:43 +08:00
@raiz 这种情况下,没有 group 可以被寻址到,它只是一个 package
SoloCompany
2019-12-31 13:40:19 +08:00
独立的 class loader 隔离
0DBBFF
2019-12-31 13:41:22 +08:00
好吧,怪我没看清复制了一份源码。急着抢票就回答了
HongJay
2019-12-31 13:41:43 +08:00
谁让他偷懒了
raiz
2019-12-31 14:51:40 +08:00
@SoloCompany 搜索了一下,基本都是讲插件化的,我刚好解决了原生 Webview 的问题,绕开了 🤦‍

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/633848

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX