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

AndroidStudio,多个模块, libs 都有某个 jar 包。A 模块中代码却引用了 B 模块的 jar。有办法解决吗?

  •  
  •   ylcx123 · 2016-08-27 01:20:50 +08:00 · 10642 次点击
    这是一个创建于 3013 天前的主题,其中的信息可能已经有所发展或是发生改变。
    AndroidStudio ,有多个 module(命名为 A,B,C,D), A,B,C 三个 module 的 libs 都有某个 jar 包(命名为 X.jar)。
    目前的问题是:
    1. A module 代码中调用了 X.jar 中方法。我用 Ctrl+左键点这个方法,打开的却是 B module 的 libs 里的 X.jar 文件。如何让 A 代码引用到自己 Libs 里的 jar 文件,即打开的是 A module 的 Libs 里的 X.jar 。
    2. 最近出现了更奇怪的情况。 A module 中 R.layout.xxxxx ,我用 Ctrl+左键点这个布局 id ,打开的却是 C module 的 res 里的布局文件。
    4 条回复    2016-09-13 11:39:05 +08:00
    Lonely
        1
    Lonely  
       2016-08-27 01:33:43 +08:00 via Android
    abc 的依赖关系呢?
    ylcx123
        2
    ylcx123  
    OP
       2016-08-27 12:39:05 +08:00
    @Lonely 实际 D 是插件化代码, D 打出 X.jar 。 A 是业务代码, B 是中转代码(D 经过 B 拉起 A), C 是 sample 。

    最终运行情况是: C 集成 X.jar ,反射拉起 B , B 反射拉起 A 。
    同时 A,B 中 libs 添加 X.jar 包,使因为其会调用 C(也就是 X.jar)中某些方法。
    shily
        3
    shily  
       2016-09-13 10:45:58 +08:00
    C->X (->A->B )
    A 和 B 引入 X 的时候,使用 provided, 不要使用 compiled
    ylcx123
        4
    ylcx123  
    OP
       2016-09-13 11:39:05 +08:00
    @shily 3Q, 我之前跟另一个人请教,也是让用 provided ,不要用 compiled 。

    现在还有个问题。 A 项目中, ctrl+鼠标左键 点击代码中使用的某个 xml 文件。 结果打开了 B 项目的此 xml 文件了。

    (ant 编译时,会把 A 项目的资源 copy 到 B 项目里,然后在 B 项目里编译资源,所以 B 项目和 A 项目拥有一样的资源)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1328 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:35 · PVG 07:35 · LAX 15:35 · JFK 18:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.