android中的外部项目引用

时间:2010-12-31 00:13:58

标签: android

我有一个Android应用程序,它利用另一个项目作为项目参考。我已进入应用程序选项,构建路径,然后在项目引用中选择项目。

所有内容都构建和部署正常,但是当我尝试运行应用程序并在该项目中实例化一个类时,我得到了一个java.lang.NoClassDefFoundError错误rrrrrr。

我不是java项目专家,所以我假设我已经做了一些简单的事情。任何想法?

8 个答案:

答案 0 :(得分:23)

在Eclipse上,转到“Android-Project” - >属性 - > Java构建路径 - >订单和专家,然后选择您要导入的java项目并将其移到所有条目之上。

答案 1 :(得分:10)

此问题有一些解决方法。您可以将库检查为Android库: 右键单击项目/属性/ Android选项卡 - “是库”。

然后在你的主项目中: 右键单击项目/属性/ Android选项卡 - >添加(并添加您的库项目)。

但是,您的库必须首先创建为Eclipse Android项目(以便项目属性中可以使用“Android”部分)。

我已经这样做了,我再也没有NoClassDefFoundError了。这种解决方案仍然有利于早期开发。如果您的库是稳定的,您应该制作一个jar并将其包含在您的主项目中(并删除对Android库的引用)。

答案 2 :(得分:2)

我遇到类似的问题。我有一个旧项目,我用作一些数学和3D函数的命名空间 - 我想在android和我的其他java代码之间分享。麻烦的是,一旦我从我的图书馆发现POD类型,该死的东西就崩溃了。我的外部项目不生成jar文件;它仅用作命名空间。   我假设有一些运行时链接问题引起了这个问题,但是android,eclipse和java总是给我一个完全没有任何帮助的问题。

答案 3 :(得分:2)

我遇到了同样的问题。很少有研究让我进入图书馆计划,在这篇文章中也提到过。但请记住:

“您还可以将Android项目指定为库项目,这样可以与其他依赖它的项目共享。一旦将Android项目指定为库项目,就无法安装 在设备上。“

您可以找到更多信息:

http://developer.android.com/tools/projects/projects-eclipse.html

以及

https://groups.google.com/forum/?fromgroups#!topic/android-developers/C0pddRNGZVs

答案 4 :(得分:1)

我最近遇到了一个非常相似且可能相同的问题。 Android不喜欢对项目的引用,如果你试图让你的android项目引用另一个项目,它会抛出这些反射异常。

它也不喜欢在构建路径上使用jar,你需要做的是导出你想要包含在android项目中的项目并将它们放在/ libs文件夹中。此文件夹通常在创建项目时创建,如果不是自己创建,则它位于项目的根目录中。如果它们在那里,Android会自动接收它们。

同样非常重要的是,如果你的外部项目也依赖于你需要导出其他项目的其他项目,并且还将jar放在android项目的/ libs文件夹中。

截至2012年7月22日,Android的最新版本就是这种情况。如果你使用旧版本的android,它可能不适用。

答案 5 :(得分:0)

您可能需要在父项旁边包含依赖项目的已编译源的JAR。 Android需要拥有类文件,以便它可以将它们重新编译为Dalvik字节码,然后在类路径中使它们可用。

This video可以帮助您,取自this question

答案 6 :(得分:0)

如果您的外部项目依赖于其类路径中的其他jar,请确保将它们导出并将它们推送到Eclipse中导出列表的顶部。我在项目中的类上抛出了相同的NoClassDef错误,但真正的问题在于它所依赖的jar的导出顺序。我修好后工作得很好。

答案 7 :(得分:0)

上下文:开发一个JSP网站,该网站可与Web上的多个Android设备连接。需要通用课程。

采取的步骤:

对于包含公共类的java项目:

1)(什么都不做)

对于您的Android App项目:

1)项目属性 - > Java构建路径 - >项目标签 - >添加...

2)项目属性 - >项目参考 - >相应地设置复选框

3)[正如Matthew上面所说的(这正是我需要的)]“Android-Project” - >属性 - > Java构建路径 - >订单和专家,然后选择您要导入的java项目并将其移到所有条目之上。

对于您的JSP网站项目:

1)项目属性 - > Java构建路径 - >项目标签 - >添加...

2)项目属性 - >项目参考 - >相应地设置复选框