将库/ JAR添加到Eclipse Android项目中

时间:2010-09-04 15:46:41

标签: android eclipse jar android-library

这是一个关于在Eclipse中向Android项目添加第三方库(JAR)的两部分问题。

问题的第一部分是,当我尝试将第三方JAR(库)添加到我的Android项目时,我首先遇到了问题

  

解析XML时出错:未绑定前缀

因为我正在尝试使用该JAR中的一个类(并且需要以某种方式定义的前缀)。发生了什么事?

其次,(在解决之后 - 下面给出了答案),我的应用程序无法在Android上运行,我通过调试器(LogCat)发现我尝试使用的类不存在。< / p>

  

引起:   抛出java.lang.ClassNotFoundException:   com.github.droidfu.widgets.WebImageView ...

为什么,当我在Eclipse中没有编译或链接器错误时,它是否在模拟器上出现此问题?

这两个问题是修辞性的,我将在下面自己回答。这个论坛中的其他帖子可以解决问题,其他地方也有讨论,但我觉得我可以更明确地帮助下一个人来。

8 个答案:

答案 0 :(得分:316)

现在为了缺少课程问题。

我是Eclipse Java EE开发人员,多年来一直习惯通过Build Path中的“用户库”机制添加第三方库。当然,至少有3种方法可以添加第三方库,我使用的是最优雅的,我的意见不多。

然而,对于Android,其Dalvik“JVM”无法处理普通的Java编译类,但必须将其转换为特殊格式,这不起作用。当你以我不会这样做的方式添加库时,就不会发生这种情况。

相反,请遵循(广泛使用的)导入第三方库的说明,然后使用Build Path添加它(这使Eclipse知道它用于编译目的)。这是一步一步:

  1. 将库下载到您的主机 发展系统。
  2. 在中创建一个新文件夹 libs 你的Eclipse / Android项目。
  3. 右键单击 libs 并选择 导入 - &gt;一般 - &gt;文件系统, 然后,在文件系统中浏览 找到图书馆的父母 目录(即:你在哪里 下载到)。
  4. 单击“确定”,然后单击“确定” 中的目录名称(不是复选框) 左侧窗格,然后检查 右侧窗格中的相关JAR。这个 将库放入您的项目中 (物理上)。
  5. 右键单击您的项目, 选择构建路径 - &gt;配置Build 单击路径,然后单击“库”选项卡, 然后添加JAR ...,导航到您的 libs 目录中的新JAR和 添加它。 (顺便说一下,这是您的新JAR转换为在Android上使用的时刻。)
  6. 请注意

    如果您的构建路径中已包含lib,则可能不需要步骤5。在添加之前先确保它的存在。

    你在这里所做的完成了两件事:

    1. 包括Dalvik转换的JAR 在你的Android项目中。
    2. 使Java定义可用 去Eclipse以便找到 开发时的第三方类(即编译) 你项目的源代码。

答案 1 :(得分:20)

确保您的第三方罐子在您的项目“libs”文件夹中,当您打包应用程序时,它们将被放入.apk中。如果不支持jar中的某些内容,您可能会在设备上看到运行时错误,但除此之外我已经取得了很大的成功。

答案 2 :(得分:5)

设置图书馆计划

库项目是标准的Android项目,因此您可以像创建新应用程序项目一样创建新项目。

创建库项目时,可以根据需要选择任何应用程序名称,包和设置其他字段,如图1所示。

接下来,设置项目的属性以指示它是一个库项目:

在Package Explorer中,右键单击库项目,然后选择Properties。 在“属性”窗口中,选择左侧的“Android”属性组,然后在右侧找到“库”属性。 选中“is Library”复选框,然后单击“应用”。 单击“确定”关闭“属性”窗口。 新项目现在标记为图书馆项目。您可以开始将源代码和资源移入其中,如以下部分所述。

答案 3 :(得分:4)

如果您使用的是ADT 22版,则需要检查项目构建路径中的顺序和导出选项卡中的android依赖项和android私有库

答案 4 :(得分:2)

首先,缺少前缀的问题。

如果您在布局文件中使用来自第三方的内容,您可能还需要使用其前缀,例如“droidfu:”,它出现在以下XML构造中的几个位置:

<com.github.droidfu.widgets.WebImageView android:id="@+id/webimage"
          android:layout_width="75dip"
          android:layout_height="75dip"
          android:background="#CCC"
          droidfu:autoLoad="true"
          droidfu:imageUrl="http://www.android.com/images/opensourceprojec.gif"
          droidfu:progressDrawable="..."
          />

这来自JAR,但你还需要添加新的“xmlns:droidfu”

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:droidfu="http://github.com/droidfu/schema"
      ...>

或者您收到未绑定的前缀错误。对我来说,这是未能从第三方库的页面复制和粘贴所有提供的示例。

答案 5 :(得分:1)

  

解析XML时出错:未绑定前缀

     

资源'/ playteddy / res'不存在。

我得到了上述两个错误,最后我解决了。

右键单击您的项目 - &gt;属性 - &gt; java构建路径 - &gt; googleadmobadsdk(选择并将其置于顶部),然后运行并解决问题。它解决了我的运行时错误。

答案 6 :(得分:0)

将源放在yourt工作区外的文件夹中。 右键单击项目浏览器,然后选择“导入...”

将工作区中的项目导入为Android项目。 尝试构建它,并确保它被标记为库项目。 还要确保它是使用Google API支持构建的,如果不是,您将收到编译错误。

然后,右键单击项目资源管理器中的主项目。 选择属性,然后选择左侧的Android。 在下面的库部分中,单击“添加”..

现在可以使用mapview-balloons库添加到项目中。

答案 7 :(得分:0)

转到eclipse中的构建路径,然后单击order并导出,然后检查库/ jar,然后单击向上按钮将其移动到列表顶部以首先编译它。