V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
raiz
V2EX  ›  Android

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

  •  
  •   raiz · 2019-12-31 11:51:41 +08:00 · 9627 次点击
    这是一个创建于 1789 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目原来使用 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

    7 条回复    2019-12-31 14:51:40 +08:00
    0DBBFF
        1
    0DBBFF  
       2019-12-31 11:55:18 +08:00
    关键字 exclude group
    raiz
        2
    raiz  
    OP
       2019-12-31 13:28:51 +08:00
    @0DBBFF 尝试过,做不到,因为 GeckoView 不是通过 maven 依赖公共库的方式依赖的 ExoPlayer,而是复制了一份源码在代码树下。
    raiz
        3
    raiz  
    OP
       2019-12-31 13:29:43 +08:00
    @raiz 这种情况下,没有 group 可以被寻址到,它只是一个 package
    SoloCompany
        4
    SoloCompany  
       2019-12-31 13:40:19 +08:00 via iPhone
    独立的 class loader 隔离
    0DBBFF
        5
    0DBBFF  
       2019-12-31 13:41:22 +08:00
    好吧,怪我没看清复制了一份源码。急着抢票就回答了
    HongJay
        6
    HongJay  
       2019-12-31 13:41:43 +08:00
    谁让他偷懒了
    raiz
        7
    raiz  
    OP
       2019-12-31 14:51:40 +08:00
    @SoloCompany 搜索了一下,基本都是讲插件化的,我刚好解决了原生 Webview 的问题,绕开了 🤦‍
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1195 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:30 · PVG 02:30 · LAX 10:30 · JFK 13:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.