我对一些Android项目和Eclipse有一个非常奇怪的问题。 我有许多Android项目都使用大部分相同的代码,因此将大量代码移动到Android库项目中。 很长一段时间,这对三个应用程序来说效果很好。 今天,我也希望将这个库用于第四个应用程序,并遇到麻烦。 基本上情况如下:

  • 库项目:包含一组活动以及一些实用程序类
  • 新项目:在某种情况下实例化图书馆项目中的一项活动。

这应该都是微不足道的东西,我甚至在其他三个应用程序中完全相同的事情与完全相同的库项目完全相同的活动。 在新项目中,我在项目属性中引用了库项目,并将库项目中的活动添加到AndroidManifest.xml。 Eclipse现在认识到这一点,并让我参考活动。 万事皆安。

应用程序运行正常,直到我执行从库项目启动活动的操作。 应用程序退出,logcat告诉我:

FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: no.company.application.base.SomeDetailActivity
    at no.company.someotherapplication.SomeListActivity$4.onClick(SomeListActivity.java:466)
    at android.view.View.performClick(View.java:2538)
    at android.view.View$PerformClick.run(View.java:9152)
    at android.os.Handler.handleCallback(Handler.java:587)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:123)
    at android.app.ActivityThread.main(ActivityThread.java:3691)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
    at dalvik.system.NativeStart.main(Native Method)

这是有趣的开始。 知道库项目与.apk捆绑在一起,因为我从这个项目中运行了一些实用程序代码。 但是当从Ant编译这个确切的项目时,通过使用命令ant debug然后使用ant installd ,应用程序运行得很好,包括启动活动。 因此,完全相同的项目设置可以在Ant中运行,但不适用于Eclipse。

我已经尝试了通过谷歌搜索找到的技巧,例如清理所有项目,删除特定项目的.project和.classpath并重新生成它们。 通过将其与工作项目中的清单文件进行比较,我还确保了我的清单文件是正确的。 无论我做什么,我都会再次遇到这个问题。 由于它使用Ant编译和运行得很好,在我看来项目本身没有任何问题,但我真的需要能够通过Eclipse编译它。

编辑:我只是使用dexdump工具反编译了Eclipse创建的apk中的classes.dex,并且能够确认该类与apk捆绑在一起。 我找到了一个具有正确的类描述符和实例字段的类。 另一方面,我也反编译了Ant生成的版本,并且有很多不同之处。 在这里重复太多了。 使用Ant和Eclipse时,生成的文件是否应该相同?

===============>>#1 票数:2

我刚刚遇到同样的问题。 在我的情况下,我已经为Java构建路径正确设置了它,但忘了添加库。 转到属性 - > Android,然后单击“库”部分中的“添加...”,然后添加库项目。 之后它按预期运行。

===============>>#2 票数:0

有时,android插件不能很好地生成导致此类问题的资源。 尝试以下简单程序:

  1. 在其中一个布局xml中更改一些id并保存xml(项目中的任何布局都可以)。
  2. 通过插件编译项目后,将id更改回来并保存。

如果这是问题,那么它应该在项目编译后解决它。

===============>>#3 票数:0

我解决了在最终项目的构建路径中包含jar的问题。 图书馆的构建路径显然还不够。

它糟透了,但至少它起作用了。

  ask by Bendik translate from so

未解决问题?本站智能推荐:

4回复

当类明显存在时,我收到java.lang.NoClassDefFoundError

我在运行时尝试使用该库时遇到以下错误:java.lang.NoClassDefFoundError:com.google.api.client.extensions.android2.AndroidHttp我已将此库添加到我的项目中,这是第一个jar Maven依赖项(尽管我不是100%习惯于M
1回复

从Eclipse启动时出现NoClassDefFoundError,但在Ant上运行正常

我正在Eclipse(Linux上的Oracle JVM 1.8)中开发OSGi组件。 当我通过带有所有必需软件包的Eclipse Runconfiguration运行组件时,出现以下错误: 我的组件导入了编译的boofcv.core.image.ConvertBufferedImag
2回复

java.lang.NoClassDefFoundError:如何解决此错误?

我正在开发一个使用Osmdroid maps api的Android应用程序。 我已将库作为外部jar添加到构建路径中,并且在编译时未出现任何错误。 但是,在部署设备时,出现以下错误: 我已经进行了一些搜索,对我来说仍然是一个谜。 这是我的IDE配置。
2回复

java.lang.NoClassDefFoundError:org / eclipse / jdt / internal / compiler / impl / CompilerOptions

我正在作为eclipse插件开发人员,当我尝试使用ant从命令行构建eclipse源时,它失败并显示以下错误。 java.lang.NoClassDefFoundError:org / eclipse / jdt / internal / compiler / impl / CompilerO
1回复

用ant构建jar:线程“ main”中的异常java.lang.NoClassDefFoundError

我正在研究一个Java项目,该项目使用来自外部jar的类。 当我用ant构建它时,它的编译没有任何错误。 但是,当我运行jar时,我将收到“线程“ main”中的异常java.lang.NoClassDefFoundError:data / representation / IPlayer”
1回复

使用Proguard的Java核心类的NoClassDefFoundError

我正在开发一个集成Tokbox的OpenTok java sdk的Android应用程序。 在使用proguard之前,所有程序都运行良好(我需要使用proguard,因为我超出了dex限制)。 在运行时,我遇到此错误: 我在...Java/jre7/lib/rt.jar发现了缺
3回复

找不到从方法android java.lang.NoClassDefFoundError引用的类

我正在调用一个单独的类,我已经在同一个包中编写了保存的MainActivity类。 但是当我运行应用程序时,它给了我java.lang.NoClassDefFoundError 。 我无法理解为什么无法识别在同一个包中定义的另一个类。 我已经尝试了许多方法建议java.lang.NoCla
1回复

java.lang.NoClassDefFoundError

Windows 7 32位。Java6。Ant1.9.2。 我正在尝试运行包含主类的jar文件。 让我们看看我的SwarmMentics.jar的目录结构: 您可能猜到主要类是gov.usgs.swarm.Swarm.class。 文件MANIFEST.MF为: 无论我
1回复

蚂蚁错误“线程“ AWT-EventQueue-0”中的异常java.lang.NoClassDefFoundError:com / sun / jna / Library”

我有一个使用大量外部库的Java程序。 该程序可以编译并在Eclipse IDE中运行,没有任何问题。 但是,当使用ant build.xml时,编译工作正常,但在运行时抛出以下异常。 下面给出了我正在使用的构建脚本。 所需的外部库“ jna.jar”,“ jna-pla
1回复

Eclipse NoClassDefFoundError

我正在使用Google Maps开发应用程序。 它引用了Google Map Util库项目,该项目引用了Google Play服务库和appcompat-v7。 这是我的工作区: https://www.dropbox.com/s/cwy2o9di7bk74li/Zrzut%20ek