将Android库添加到Android项目的正确方法是什么?

时间:2014-10-13 15:03:50

标签: android eclipse dependencies libraries android-appcompat

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

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

编辑:以下是将库项目作为Android依赖项添加到主项目时所遵循的流程的更多详细信息:

  1. 在项目浏览器中,右键单击项目并选择“属性”。
  2. 在对话框左侧的类别面板中,选择Android。
  3. 在“库”窗格中,单击“添加”按钮。
  4. 选择库项目,然后单击“确定”。
  5. 但是,即使正确识别了依赖项,Eclipse仍然会将兼容性引用(例如ActionBarActivity)视为错误,禁止我构建项目。 (See picture here)

    为了解决这个问题,我尝试了SE上类似问题所接受的解决方案,即将android-support-v7-appcompat添加到Project的Build Path中,该路径成功地隐藏了阻止我先前编译的错误。

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

    要继续,使用第一个配置我无法使用Eclipse编译,而使用第二个配置我无法启动应用程序。

    因此,我有两个问题:

    • 首先,我应该如何向我的项目添加库,这样我就可以同时构建我的项目能够在我的库中添加库Eclipse中的代码?

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

1 个答案:

答案 0 :(得分:2)

  

首先,我应该如何向我的项目添加库,这样我可以同时构建我的项目并能够在Eclipse的代码中使用库的添加?

你的第一种方法应该没问题,这表明存在其他一些问题。例如,appcompat库项目中可能存在阻止编译的错误。但是,考虑到第二种方法的错误,要么运行appcompat库(这将无法工作),要么在项目设置中基本上破坏了其他内容,您的应用程序认为它应该构建{ {1}},当没有这样的APK时。

  

将库添加为Android依赖项与Java Dependency / vs将项目或其jar添加到Build路径之间有什么区别?

永远不要手动修改Eclipse项目中的构建路径。虽然这将满足编译器,但JAR的内容不会打包到您的APK中以便在运行时使用,从而导致运行时崩溃(例如,android-support-v7-appcompat.apk)。

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

对于Eclipse,库项目通过您描述的方法附加到您的问题中的第一种方法。对于Eclipse,普通JAR只是被放入项目根目录中的appcompat,并且会自动添加到编译时和运行时类路径中。