Eclipse中的"Open Declaration"导航到类文件而不是Android库的源文件

And*_*eas 25 java eclipse android

我有两个Android项目'A'和'B'.'B'取决于'A'并且是图书馆.每当我在项目'B'中并为位于'A'的Java源文件点击'Open Declaration'时,Eclipse就会导航到类文件而不是源文件.这当然有几个缺点!

我看了一下项目'B'的构建路径,看看引用的库'A'是否有正确的源项目路径,就是这样.

谁知道如何解决这个问题?

以下是每个项目的.classpath和project.properties文件:

ProjectA .classpath

<?xml version="1.0" encoding="UTF-8"?>
  <classpath>
  <classpathentry kind="src" path="src"/>
  <classpathentry kind="src" path="gen"/>
  <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
  <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
  <classpathentry kind="output" path="bin/classes"/>
</classpath>
Run Code Online (Sandbox Code Playgroud)

ProjectA project.properties

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "ant.properties", and override values to adapt the script to your
# project structure.

# Project target.
target=android-8
android.library=true
Run Code Online (Sandbox Code Playgroud)

ProjectB .classpath

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
  <classpathentry kind="src" path="src"/>
  <classpathentry kind="src" path="gen"/>
  <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
  <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
  <classpathentry kind="output" path="bin/classes"/>
</classpath>
Run Code Online (Sandbox Code Playgroud)

ProjectB project.properties

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "ant.properties", and override values to adapt the script to your
# project structure.

# Project target.
target=android-8
android.library.reference.1=../ProjectA
Run Code Online (Sandbox Code Playgroud)

GaR*_*eTa 19

您可以将库项目不仅作为Android Lib导入(这就是它要完成的方式),还可以作为通常的"Java Build Path"菜单中的链接项目导入.接下来,请务必将此导入移至"订购和导出"选项卡中的顶部(至少更多"库项目"条目).

这有效,但它是一个黑客,它很脏.这不是它要完成的方式......当你将应用程序部署到手机时,eclipse会在控制台中写一条错误消息,说无法找到某些apk ...

不过,我发现链接到类文件更方便.

我不知道这是怎么回事.我在办公室的伙伴运行的配置与我相同,他们没有这个问题,但似乎我们不是唯一有这个问题的人:http://code.google.com/p/android/issues/detail ?ID = 20731


Hon*_*ong 11

当我的库项目A版本在"属性> Java构建路径>库"中时,我遇到了同样的问题,但在"属性> Java构建路径>项目"中没有.

我做了以下事后解决了这个问题:

  1. 从"属性> Java构建路径>库"中删除"库项目",这是由"属性> Java构建路径>库"添加的(我不确定这一步是否必要,但这就是我所做的).
  2. 将项目A添加到"属性> Java构建路径>项目".
  3. 重启Eclipse(Indigo).以某种方式Eclipse在"属性> Java构建路径>库"中重新创建库项目

.classpath应该具有以下内容:

<classpathentry combineaccessrules="false" kind="src" path="/A"/>
Run Code Online (Sandbox Code Playgroud)

实际上导航到类文件并不是最烦人的,但在调试期间打破类文件而不是java文件在这个问题解决之前让我发疯了.


小智 8

什么对我有用:在订单导出选项卡下 - 在下面/src/gen主项目下移动lib 项目.


E-R*_*Riz 1

我的第一个猜测是,您在 B 的构建路径上有一个包含 A 类的 JAR。检查“库”选项卡。您能向我们展示您的 .classpath 和 project.properties 文件吗?