在Android项目中引用(纯java)项目(找不到类)

在Android项目中引用(纯java)项目(找不到类),java,android,eclipse,noclassdeffounderror,buildpath,Java,Android,Eclipse,Noclassdeffounderror,Buildpath,我试图在我的Android项目中引用一个纯java项目->java项目有一大堆我需要使用的类。哦,正如第一个回答所指出的:我正在使用eclipse,是的:) 唯一的问题是:我总是找不到从方法com.example.helloworld.MainActivity.onCreate引用的类“XXX”。我似乎错过了一些步骤或错误 我已经做的: 项目作为项目添加到Java构建路径中(逻辑上为CARY) 它在Java构建路径中标记为“Order and Export”,并被推到顶部(这解决了其他人在处理

我试图在我的Android项目中引用一个纯java项目->java项目有一大堆我需要使用的类。哦,正如第一个回答所指出的:我正在使用eclipse,是的:)
唯一的问题是:我总是找不到从方法com.example.helloworld.MainActivity.onCreate引用的类“XXX”。我似乎错过了一些步骤或错误
我已经做的:

  • 项目作为项目添加到Java构建路径中(逻辑上为CARY)
  • 它在Java构建路径中标记为“Order and Export”,并被推到顶部(这解决了其他人在处理Jar文件时遇到的问题)
  • Ir标记在项目设置的“项目参考”中
  • 我在构建路径中的“库”下添加了相关类所在的文件夹。。。我不确定那是否应该是卡里
我引用的Java项目有一大堆JAR,但如果这就是原因,我是否应该得到一条不同的错误消息?

需要检查两件事(您提到您正在使用Eclipse):

  • 如果您的android项目需要使用纯java项目的JAR,请检查这些JAR是否正在纯java项目的构建路径选项中导出。这是您试图包含的纯java项目的构建路径,而不是试图包含它的android项目的构建路径。在纯java项目的“Order and Export”选项卡下,注意注释“导出的条目被贡献给依赖项目”。在本例中,您的android项目是依赖项目,您的纯java项目需要做贡献

  • 确保除了android项目之外,纯java项目实际上也在IDE中打开。可能微不足道,但有时被忽视

  • 如果答案还不够,您可能希望提及缺少的类是否在.java源文件中,或者它们是否仅在纯java项目的构建路径中的JAR中找到

    编辑:为了进一步追踪问题,请确认以下内容,以确保我理解您的问题:

  • 纯java项目确实在IDE中成功构建

  • “找不到类”错误是您在尝试构建android项目时遇到的错误,而不是在尝试运行时遇到的错误

  • 类路径(又名构建路径)很难理清。如果包含项目不起作用(假设它确实构建了),您可以尝试构建纯java项目的JAR,并将其和所有其他JAR复制(包括)到您的android项目中

  • android SDK确实使构建环境复杂化了。找出问题是(A)您的android项目设置还是(B)纯java项目的打包方式)的一种方法是创建一个不同的纯java项目,并尝试包括第一个项目,如果可能,最好使用在android项目中给出构建错误的-完全相同的代码行


  • 我也有同样的问题,经过几个小时的挫折和探索,我终于在这里找到了答案:

    基本上,问题是引用的纯java项目或生成的jar是用Java1.7构建的,Android项目设置为使用1.6

    有两种方法可以做到这一点

    • Jar该java项目,并将Jar复制到Android项目的libs文件夹中
    • 将项目作为从属项目添加到Android项目中
    两者都工作得很好

    但是请注意,这个纯java项目必须添加android.jar,而不是像rt.jar:)这样的东西。否则您将得到Dalvik异常

    编辑:
    别忘了刷新和投影-清理你的android项目。

    我实际上完全错过了第二个。。。仍然不起作用,但这可能是线索。not found类是一个源文件,但在某个地方依赖于Jar。另外,我发现了对javax包的依赖。。。我担心我的问题可能就在那里?好吧,我又在这个问题上,但仍然没有成功。我现在有一个测试项目,纯java,其中有一个很小的类。没有使用外部类,Android项目(实际上只是一个Hello World)运行得非常完美。在我添加外部类的那一刻,构建仍然成功,但当我尝试在我的设备上运行它时,整个过程都崩溃了(Nexus7,如果有帮助的话)。尽管如此,还是要感谢所有的指点。。。我会在我可以的时候投票;)“Java中的NoClassDefFoundError出现在Java虚拟机无法在运行时找到编译时可用的特定类时。”我已经多次遇到这个问题,似乎有不同的修复方法。检查一下这里的一些答案,几乎可以肯定的是找到正确的方法来包含您的jar文件-您找到并解决了实际问题了吗?有着完全相同的问题,纯java项目被引用,并且在被引用的项目中得到了关于类和方法的错误。。这确实是Java版本的一个问题,我一定是在安装过程中把它们搞乱了。