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

2022-09-01 18:55:48

我有两个Android项目“A”和“B”。“B”依赖于“A”,是一个库。每当我在项目“B”中点击“打开声明”以获取位于“A”中的Java源文件时,Eclipse都会导航到类文件而不是源文件。这当然有几个缺点!

我查看了项目“B”的构建路径,以查看引用的库“A”是否具有指向其源项目的正确路径,情况就是如此。

有人知道如何解决这个问题吗?

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

项目 A .类路径

<?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>

项目A 项目.属性

# 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

项目 B .类路径

<?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>

项目 B 项目.属性

# 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

答案 1

您不仅可以将库项目作为Android Lib导入(这是它的目的),还可以在通常的“Java构建路径”菜单中作为链接项目导入。接下来,请确保将此导入移动到“排序和导出”选项卡中的顶部(至少更多“库项目”条目)。

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

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

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


答案 2

当我的库项目A版本在“属性>Java构建路径>库”中时,我遇到了同样的问题,但不是在“属性>Java构建路径>项目”中。

在我执行以下操作后,问题已得到解决:

  1. 从“属性> Java构建路径>库”中删除“库项目”,该属性由“属性>Java构建路径>库”添加(我不确定此步骤是否必要,但这就是我所做的)。
  2. 将项目 A 添加到“>项目的 Java 生成路径>属性”。
  3. 重新启动 Eclipse (Indigo)。不知何故,Eclipse 在“属性> Java 构建路径>库中重新创建库项目”

.classpath 应具有以下各项:

<classpathentry combineaccessrules="false" kind="src" path="/A"/>

实际上,导航到类文件并不是最令人讨厌的,但是在调试期间中断类文件而不是java文件在解决此问题之前让我发疯。


推荐