【问题标题】:What is the correct way to add an Android Library to an Android Project?将 Android 库添加到 Android 项目的正确方法是什么?
【发布时间】:2014-12-08 04:48:15
【问题描述】:

我正在尝试将 android-support-v7-appcompat 添加到我新创建的 Android 项目中。

按照支持库设置文档 (developer.android.com/tools/support-library/setup.html),使用资源添加库部分,我创建了一个 android-support-v7- appcompat 项目,然后将其添加为 Android 依赖项。

编辑:以下是我将库项目作为 Android 依赖项添加到主项目的过程的更多详细信息:

  1. 在 Project Explorer 中,右键单击您的项目并选择 Properties。
  2. 在对话框左侧的类别面板中,选择 Android。
  3. 在“库”窗格中,单击“添加”按钮。
  4. 选择库项目并点击确定。

但是,即使正确识别了依赖项,Eclipse 仍然会将兼容性引用(例如ActionBarActivity)视为错误,从而禁止我构建项目。 (See picture here).

为了解决这个问题,我尝试了 SE 上类似问题所接受的解决方案,即将 android-support-v7-appcompat 添加到项目的构建路径中,这成功地消除了阻止我更早编译的错误。

但是,现在在构建和部署项目时,出现错误:应用程序在启动时崩溃,并且控制台显示错误消息:Could not find android-support-v7-appcompat.apk!(See picture here)

要恢复,使用 第一个配置我无法使用 Eclipse 进行编译,而使用 第二个配置我无法启动应用程序。

因此,我有两个问题:

    1234563
  • 其次,我觉得我缺少关于 Eclipse 如何处理依赖关系的理论知识。 将库添加为 Android 依赖项与 Java 依赖项 / 与将项目或其 jar 添加到构建路径有什么区别?

【问题讨论】:

  • 您仍然需要添加支持库。右键单击项目/Android/添加支持库
  • @323go:感谢您的评论,但我已经这样做了,并没有发现任何变化。之后我应该重新启动 Eclipse 还是什么?
  • “在将其添加为 Android 依赖项之前”——你还没有解释你是如何做到这一点的。 “将 android-support-v7-appcompat 添加到项目的构建路径”——这不是正确的解决方案。永远不要手动修改 Eclipse 构建路径。 “我应该如何将库添加到我的项目中” - 与执行任何库项目的方式相同,将库导入 Eclipse 工作区,然后通过 Project > Properties > Android 将其附加到应用程序项目。
  • @CommonsWare:我编辑了我的问题来解释我遵循的过程。正如支持库设置文档所建议的那样,我将库作为一个项目导入到我的工作区中,然后按照您的建议通过属性 > Android 将其附加到项目中:这是我描述的 第二个配置,我得到Could not find android-support-v7-appcompat.apk 错误。

标签: android eclipse dependencies libraries android-appcompat


【解决方案1】:

首先,我应该如何在我的项目中添加一个库,这样我才能同时构建我的项目并能够在我的 Eclipse 代码中使用库的附加功能?

您的第一种方法应该没问题,这表明存在其他问题。例如,appcompat 库项目中可能存在阻止其编译的错误。但是,鉴于第二种方法的错误,要么您正在运行 appcompat 库(这将不起作用),要么在您的项目设置中更根本地破坏了其他东西,您的应用程序认为它应该构建 android-support-v7-appcompat.apk , 当没有这样的 APK 时。

将库添加为 Android 依赖项与 Java 依赖项 / 与将项目或其 jar 添加到构建路径有什么区别?

永远不要在 Eclipse 中手动修改 Android 项目的构建路径。虽然这会让编译器满意,但 JAR 的内容不会被打包到您的 APK 中以供在运行时使用,从而导致运行时崩溃(例如,VerifyError)。

“Java 依赖”适用于纯 Java 源代码。您不仅没有来自 SDK 的 appcompat 的源代码,而且 Android 库项目包括 Android 资源(并且,至少在 Android Studio 上,还包括资产和可选的清单文件)。

对于 Eclipse,库项目是通过您在问题中描述为第一种方法的方法附加的。对于 Eclipse,普通的 JAR 文件会被放入项目根目录中的 libs/,然后会自动添加到编译时和运行时类路径中。

【讨论】:

  • 感谢您提供有用的理论说明。然而,这让我相信尽管我做了正确的事情还是会出现问题:我创建了一个新项目,导入了兼容库,在 Project > Properties > Android 下引用它,但仍然面临 Eclipse 错误。当您说“从不手动修改构建路径”时,这是否包括 Eclipse 的“修复项目设置...”快速解决方案?如果是,那么我能做些什么来自己解决这个问题?
  • @PLNech:“这是否包括 Eclipse 的“修复项目设置...”快速解决方案? -- 不,因为 AFAIK 也不会手动修改构建路径。 “我自己能做些什么来解决这个问题?” -- 我首先在 Eclipse 中检查导入的 appcompat 并查看是否有任何错误标记。例如,它可能需要您尚未从 SDK 管理器下载的 SDK 平台版本。
  • 据我所知,这里Eclipse的解决方案是Add project to build pathAdd archive to build path,因此修改了。我将进一步调查下载库的正确性和我的 Eclipse 安装的完整性。
  • 重新启动并再次下载appcompat后,导入顺利。我仍然不确定问题出在哪里,但现在已经解决了。谢谢!
猜你喜欢
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多