如何在 Eclipse 中附加 Android 支持库源?
Posted
技术标签:
【中文标题】如何在 Eclipse 中附加 Android 支持库源?【英文标题】:How do I attach the Android Support Library source in Eclipse? 【发布时间】:2012-01-22 12:20:55 【问题描述】:将源代码附加到外部库非常棒。我在哪里可以找到 v4 support package 的源代码?最好是一个 zip 文件,可以很容易地附加到 Eclipse 中的android-support-v4.jar
。
【问题讨论】:
imo @andr 答案是可以接受的 【参考方案1】:我只想为支持库添加另一种附加源的方法。 它需要版本 20 或更高版本的 ADT。假设此方法适用于容器禁用设置源/javadoc 位置的所有 JAR。以下是您需要做的:
android-support-v4.jar
库位于项目的libs
目录中。在同一个目录中创建一个常规 Java 属性文件,其名称与所讨论的 JAR 完全相同,但附加了 .properties
扩展名。因此,对于我们的支持库,它将是:android-support-v4.jar.properties
。
打开创建的属性文件并将名为src
的属性的值设置为可以找到该库的源的位置。您的文件应该有如下一行:
src=c:/apps/adt-bundle-windows-64bit/sdk/extras/android/support/v4/src
保存文件。
关闭并重新打开您的 android 项目。
尝试浏览到支持类之一。源附件现在应该可以工作了。
在我的情况下工作得很好。
需要注意的一点:如果src
不是绝对路径,则会从JAR文件的父目录开始解析。以支持库为例——如果src=support/src
,ADT会假设类源位于libs/support/src
。
作者对此功能的简短描述可以在here找到。
如果有人对这个.properties
文件的处理方式感兴趣,我建议阅读补丁集#4,尤其是。 eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/ internal/project/LibraryClasspathContainerInitializer.java
的变化:)
编辑
另请参阅 WindRider 关于在具有多个引用库的项目中正确添加源代码的精彩评论。
【讨论】:
这是“官方”的推荐方式。 请注意,如果您有一个包含多个引用库的大项目,而这些库又引用了 android 支持库,则必须确保 android-support-v4.jar 的所有副本都是相同的二进制文件。否则你会得到一个奇怪的错误“checksum mismatch bla bla”。也只会导入这些支持库副本之一,可能包含在库项目的 lib\ 文件夹中。要查看使用的是哪一个,请打开 Package Explorer -> Android Dependencies 并查看支持库是从哪里导入的。然后不要对主项目执行相同的过程,而是对库项目执行相同的过程。 在尝试了其他一些方法后,我可以说这是最好的答案——应该被接受为正确的答案。 @Simulant - 我不是 ActionBar 兼容 lib 方面的专家,但快速浏览一下,我认为要使用它,您必须将其作为单独的 Android Lib 项目导入,并将其作为在你的主项目中依赖,对吧?如果是这样,您只需要按照此处针对 lib 项目的“libs”目录 描述的步骤进行操作。该目录应该有两个.jar
文件:android-support-v4.jar
和android-support-v7-appcompat.jar
,您应该能够为其创建提到的.properties
文件。
如果您使用的是 Windows,请确保在 src
行中使用正斜杠。【参考方案2】:
这里附上Eclipse Juno支持库源码的解决方案
我想您的项目已经在“Android Dependencies”下的“Build Path”中有android-support-v4.jar
,但您不能将源目录附加到它。 (“来源附件”表示“不可修改”)。解决方案:
YourProject/libs/android-support-v4.jar
(我知道您的项目已经引用了它,但不用担心,只需重新添加即可。
展开 jar 并将 Source 附加到外部 Jar:android-sdk/extras/android/support/v4/src
切换到“Order and Export”选项卡,拉起“Android Dependencies”上方的外部jar
享受使用源代码浏览支持库的乐趣!
如果您有一个附加到YourProject
的“Android 测试项目”,那么YourProjectTest
可能不再编译。在这种情况下,您必须返回“Order and Export”并拉下“Android Dependencies”下方的外部 jar 才能恢复正常。
【讨论】:
“Java 构建路径”而不是“配置构建路径”。 这包含了所有需要的步骤并且对我有用!最后一步(排序)被忽略了,非常重要。 我在 Android Private Libraries(APL,在 Android 依赖项上方列出)中列出了 android-support-v4.jar,因此我不得不将新添加的 .jar 拉到 APL 上方 为了记录,这也适用于其他库,而不仅仅是支持库。 /显而易见的船长 您不应该这样做。它违背了标准 android 应用程序的初始设置。我建议您使用@andr 的“官方”解决方案。【参考方案3】:从 Android SDK Manager 下载支持包后,您可以在文件夹 /extras/android/support/v4/src 中找到支持包的源代码。
【讨论】:
就我而言,它存储在C:\Program Files\Android\android-sdk\extras\android\compatibility\v4\src\java
。然后,我使用以下命令将其内容(android 文件夹)打包到 *.jar 中:jar cf android-support-v4-sources.jar android/
。我将此 jar 附加到 android-support-v4.jar(eclipse 中的 java 构建路径/库设置)。效果很好:)
这似乎不起作用。我怎样才能让它工作?帮助。我正在使用 adt 21.1。 android-support-v4.jar 的 doc 源或 java 源是不可修改的。右键单击项目,属性 > Java 构建路径 > 库选项卡,Android 私有库 > android-support-v4.jar - 源附件:(无)- 不可修改。 :(
好的。让它工作。 android-support-v4.jar 需要在Referenced Libraries
中右击,Build Path..
,Add to Path
。然后在Referenced Libraries
,在android-support-v4上右键属性并设置源。
这个答案确实完全回答了 OP 的问题。要将其附加到 Eclipse 中的 jar 文件,请参阅@andr 的回答
@Thupten,你不是引用 两次 那么什么时候就足够了?【参考方案4】:
参考已接受的答案,也可以直接从目录附加源代码,而无需构建 .jar 文件。从 Java 构建路径/库选项卡中,展开 android-support-v4.jar,突出显示“源附件”,单击“编辑...”,“外部文件夹...”,然后指向 (android-sdk)\extras\安卓\支持\v4.
这是使用 eclipse indigo 测试的。
来自 cmets:
如果您的支持库位于项目的“Android Dependencies”文件夹中,似乎会出现无法将源添加到支持库的问题。解决方法是从相同的“Java 构建路径/库”选项卡单击“添加外部 JAR...”并在 (android-sdk)\extras\android\support\v4 路径中找到 .jar 文件。然后它将出现在您的项目设置中的新“引用库”文件夹下。
【讨论】:
当然,如果您没有无法将源附加到 jar 的错误。 这太棒了,但我的“编辑”按钮是灰色的:/。那是你提到lxx的错误吗?找到解决方案了吗? 全部变灰,显示“不可修改” 如果您的支持库位于项目的“Android Dependencies”文件夹中,似乎会出现无法将源添加到支持库的问题。解决方法是从相同的“Java 构建路径/库”选项卡单击“添加外部 JAR...”并在 (android-sdk)\extras\android\support\v4 路径中找到 .jar 文件。然后它将出现在您的项目设置中的新“引用库”文件夹下。然后,您可以按照原始答案中的说明将源附加到此 .jar 文件。【参考方案5】:对于喜欢标准的人来说,有源代码的jar文件,这样更方便源代码控制和项目共享。
例如:
../android-support-v4.jar ../android-support-v4-src.jar
创建源jar文件并附上很简单:
-
cd 到 path_to_android_sdk/extras/android/compatibility/v4/
使用您喜欢的 zip 程序(例如 7-zip)创建一个 zip 文件并将其命名为 android-support-v4-src.jar。 jar 中的第一个文件夹应该是 /scr。
将文件复制到您的项目中,在本例中,它与代码 jar 位于同一文件夹中。
在 Eclipse 中,在项目属性中附加源 jar。
【讨论】:
感谢您的回答。要创建 jar 存档,也可以使用 JDK 中包含的 jar 程序。【参考方案6】:我只是删除自动生成的,然后手动将其添加为参考库。
首先打开一个类,IDE 会要求你更改附加源。
【讨论】:
【参考方案7】:从构建路径附加 src 和 doc 的过程适用于某些人,但不适用于某些人(比如我)。要记住的一些关键事项
确保您在 Package Explorer,而不是 Project Navigator。
如果您已将 android-support-v4.jar 放在项目下的 libs 文件夹中。很棒。
右键单击 jar,构建路径.. 添加到路径。 (如果“添加到路径”未显示,则它已添加。您将看到配置路径..)
作为第 3 步的结果,一个名为 Referenced Libraries 的新文件夹将出现在包资源管理器树中。打开那棵树,在那里找到 android-support-v4.jar。在 Referenced Libraries 属性中右键单击此 jar。然后在那里设置 Java Source Attachment 和 Javadoc Location。
你已经完成了。
我的 Java 源附件的路径。(它的外部位置)
C:/Users/thupten/adt-bundle-windows-x86_64-20130514/sdk/extras/android/support/v4/src
我使用 android 网站文档作为 java 文档位置
http://developer.android.com/reference/android/support/v4/app/package-summary.html
【讨论】:
【参考方案8】:我为我找到了这个:
对于主库:android.jar:
src: sdk/sources/android-19 文档:sdk/docs/reference/
对于支持库:android-support-v4.jar:(在此之前我们应该添加 android-support-v4.jar 就像外部 jar 一样(项目属性 -> Java 构建路径 -> 库,然后在选项卡中“订购和导出” ' 在 Android Private Libraries 之前拉起这个库)):
src: sdk/extras/android/support/v4/src/java 文档:http://developer.android.com/reference/android/support/v4/app/package-summary.html(不确定)
【讨论】:
【参考方案9】:更新 SDK 并在其中下载文档后:
将支持库项目导入包资源管理器。 在库中创建一个文件夹并将其命名为ext-jars
。
将android-support-v4.jar
移动到ext-jars
文件夹。
Add JARs...
然后展开项目并选择你已经移动到文件夹ext-jars
的jar文件。
展开添加的jar,选择Source attachment
,然后点击Edit
。
选择External location
然后点击External Folder...
选择 Support v4 的源文件夹,该文件夹位于
[sdk-path]/extras/android/support/v4/src
选择Javadoc location
点击Edit
然后选择Javadoc URL
然后点击Browse...
并选择位于[sdk-path]/docs/reference/
的支持v4的javadoc位置
- 选择Order and Export
标签并检查您刚刚添加的android-support-v4.jar
。
我建议你也清理项目并重新打开 Eclipse。
【讨论】:
以上是关于如何在 Eclipse 中附加 Android 支持库源?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual Studio 中将源附加到引用的程序集