我有两个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>
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
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>
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
答案 0 :(得分:19)
您可以将库项目不仅作为Android Lib导入(这就是它要完成的方式),还可以作为通常的“Java Build Path”菜单中的链接项目导入。 接下来,请务必将此导入移至“订购和导出”选项卡中的顶部(至少更多“库项目”条目)。
这有效,但它是一个黑客,它很脏。这不是它要完成的方式......当你将应用程序部署到手机时,eclipse会在控制台中写一条错误消息,说某些apk无法找到...
但是,我发现链接到类文件更方便。
我不知道这是怎么回事。办公室里的伙伴们运行的配置与我相同,他们没有这个问题,但似乎我们不是唯一有这个问题的人:http://code.google.com/p/android/issues/detail?id=20731
答案 1 :(得分:11)
当我的库项目A版本位于“Properties&gt; Java Build Path&gt; Libraries”中时,我遇到了同样的问题,但是在“Properties&gt; Java Build Path&gt; Projects”中却没有。
在我执行以下操作后问题得以解决:
.classpath应具有以下内容:
<classpathentry combineaccessrules="false" kind="src" path="/A"/>
实际上导航到类文件并不是最烦人的,但是在调试期间打破类文件而不是java文件会让我疯狂,直到这个问题得到解决。
答案 2 :(得分:8)
对我有用:在订单和导出标签下移动lib项目 - 位于主要/src
和/gen
下方项目
答案 3 :(得分:1)
我的第一个猜测是你在B的构建路径上有一个带有A类的JAR。检查“库”选项卡。你能告诉我们你的.classpath和project.properties文件吗?
答案 4 :(得分:0)
以下解决方案适合我:
转到android库项目(在你的情况下,它是A)设置 - &gt; Java构建路径 - &gt;订单和导出,确保第一个条目是库的源文件夹(A)。然后清理库项目和目标项目。现在它工作得很好。