【发布时间】:2011-12-15 08:39:28
【问题描述】:
- 项目 A 是我工作区中的一个 android 库项目(通过项目属性->android->library:is library)。
- 项目 A 声明类 A。
- 项目 B 使用项目 A(通过项目属性->android->库:添加...)。
- 项目 B 实例化类 A。
当我在项目 B 中的 classA 实例上使用 F3 ("open declaration") 时,它将我带到 A.jar 中的 classA.class,即包含在 B 中,从 A 构建。
有没有办法直接进入项目 A 中的源 classA.java 而不是在包资源管理器中查找?
我认为这是 ADT14 的新功能,以前每个包含的库项目都有 X_src 文件夹:例如A_src 将作为项目根目录中的源文件夹出现在 B 中。
【问题讨论】:
-
项目 A 的 Eclipse 中是否定义了 A.jar 的源?如果是这样,我认为 B 也应该能够利用它。
-
我能做的最好的事情,虽然它的工作有些不一致,是查看包含在库 jar 文件中的源代码,但这与原始文件不同.java 源代码。我已经尝试弄乱设置以使其正常工作,但我还没有找到一种方法,而且更常见的是,甚至没有破坏在库 jar 中查找源代码,这使得调试变得不可能。如果 Android 尝试在 eclipse 中做更少的“魔术”并且只是在库创建上强制执行更多步骤,它可能会更好地工作。
-
经过进一步思考,这可能是 ADT 如何构建和包含库的问题。似乎将库构建为包含 src 的 jar。最重要的是,在使用库 ADT 的项目中,使用内部机制来包含防止覆盖 src 位置的 jar(尝试更改它只会重置)。如果一个人正在构建一个没有资源的库,则可以像普通库一样只包含 jar,但这有点违背了目的。修复此问题可能需要针对 ADT 的错误,但我希望不会。
标签: android eclipse adt library-project