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

2016-08-27 01:20:50 +08:00
 ylcx123
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 里的布局文件。
10656 次点击
所在节点    Android
4 条回复
Lonely
2016-08-27 01:33:43 +08:00
abc 的依赖关系呢?
ylcx123
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
2016-09-13 10:45:58 +08:00
C->X (->A->B )
A 和 B 引入 X 的时候,使用 provided, 不要使用 compiled
ylcx123
2016-09-13 11:39:05 +08:00
@shily 3Q, 我之前跟另一个人请教,也是让用 provided ,不要用 compiled 。

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

(ant 编译时,会把 A 项目的资源 copy 到 B 项目里,然后在 B 项目里编译资源,所以 B 项目和 A 项目拥有一样的资源)

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

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

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

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

© 2021 V2EX