我发现这个错误http://code.google.com/p/android/issues/detail?id=20731已经解决,但它并没有完全解决这个问题,但我在评论中看到,这就是问题。是否有某种方式在eclipse中以某种方式在项目中设置依赖项,当我在eclipse编辑器中时,我将能够正常跳转到源代码?我尝试了很多方法来解决这个问题。
我的设置是:
在Android> Library
中安装了Android库的Android项目工作区内的Android库项目,它依赖于Java库项目
工作区内的Java库项目,作为类文件而不是源文件打开!!!
通常通过构建路径包含java库项目(这会导致构建失败) [2012-03-13 11:07:21 - Taxicar Driver Android] Dx 意外的顶级例外情况: java.lang.IllegalArgumentException:已添加:Lrensoft / java / collections / GenericIterator; [2012-03-13 11:07:21 - Taxicar Driver Android] Dx at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123) [2012-03-13 11:07:21 - Taxicar Driver Android] Dx at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
不包括,项目运行正常,但编辑器正在跳转到库类文件。
请注意,我必须通过构建路径包含Android库项目,即使它没有它运行正常(它足以设置为依赖的android库),但是当我删除它时,我也将这些文件作为类文件: )。
所以我认为正确的方法是不包括通过构建路径的项目,而是如何设置项目以跳转到源?
答案 0 :(得分:7)
我遇到了类似的问题 - Open Declaration 命令会调出.class文件而不是.java文件。然而,当我在我的Android应用程序项目中使用 Open Declaration 来转到我的Android库项目中的某些来源时,我的问题就出现了。通过遵循this blog post注释中的一些指示,当我使用 Open Declaration 命令时,Eclipse现在将我带到.java文件(而不是.class文件)。
说明如下:
为我修复了转到.java而不是.class文件问题。
(不幸的是,在进行这些更改后,会出现此问题(至少对我而言):Could not find Library.apk!)
然后我按照你在问题中描述的那样设置我的工作区(Android App取决于Android Library项目依赖于Java Library项目)我发现 Open Declaration 总是把我带到.java文件,所以在这方面看起来一切正常。
我尝试重构一个在Android库中的类中定义的方法。一个带有“问题”
的弹出窗口已找到对重构元素的二进制引用。他们会的 没有更新,如果继续,可能会导致问题。
然而,在按下继续之后,重构发生时没有任何问题。
然后我尝试重构一个在Java库中的类中定义的方法。这次我没有得到任何弹出窗口,重构工作。
java库方面可能只是工作,因为你们提到的错误已得到修复...(我使用的是带有ADT 20.0.3的Eclipse 4.2.0)。我想我会添加这个答案,但是如果有人将Open Declaration的问题跳转到.class而不是.java文件。
答案 1 :(得分:2)
我找到了解决方案。我必须从我的java库创建Android库,然后将其包含为android库以及Java库,然后我必须重新排序构建路径导出项目,因此Android“Library Projects”是最后的。并且没有多少工作,现在甚至重命名重构工作,有一些警告,但工作:),我很高兴再次开发。