【问题标题】:Android java.lang.NoClassDefFoundErrorAndroid java.lang.NoClassDefFoundError
【发布时间】:2012-04-09 21:21:22
【问题描述】:

我在 Eclipse IDE 中有一个正在运行的 Android 项目。经过一些导入和测试,我得到了错误:java.lang.NoClassDefFoundError。

在我的项目中,我有两个包:主包和带有一些类的第二个包。

当我尝试从主活动类中的第二个包类实例化一个对象时,我收到了这个错误。

这里是日志:

FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.neurospeech.wsclient.MDPIforEditorialBoard
at milos.mdpi.Journals.<init>(Journals.java:41)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1409)
at android.app.Instrumentation.newActivity(Instrumentation.java:1040)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1777)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893)
at android.app.ActivityThread.access$1500(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:4389)
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:849)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
at dalvik.system.NativeStart.main(Native Method)

找到了我的问题的解决方案:

可以在这里找到解决方案:http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

【问题讨论】:

标签: android noclassdeffounderror


【解决方案1】:

您最近是否更新了您的 eclipse android 插件 (adt r17)?那么以下链接可能会有所帮助:

How to fix the classdefnotfounderror with adt-17

更新:问题出现已过去一年。我会保留链接,因为即使在 2013 年,它似乎也能帮助一些人解决问题。但请注意您在做什么,请参阅下面的 Eric 评论。 当前的 ADT-Version 是 22,我建议使用最新版本。

【讨论】:

  • 这也对我有用,但我不得不暂时切换项目目标(在我的情况下从 2.2 -> 4.0.3)使其生效。这可能是因为我的库已经存储在名为“libs”的目录中
  • 警告,该链接表示要删除“库”选项卡中的所有内容,如果您按照这些说明操作并删除“Android 依赖项”虚拟文件夹,则必须创建一个新项目并重建您的程序从头开始,以便将其恢复。
  • @Chris Sim。在不知道您的问题到底是什么的情况下,我会说这里的解决方案不适用于您的问题。我猜你确实清理并重建了你的项目,当然还检查了你的库在属性中的设置是否正确。
  • 当我这样做时:右键单击项目 - 属性 - java 构建路径 - 订购和导出 - 勾选 Android 私有库和我添加的所有库,一切正常,谢谢
【解决方案2】:

按此顺序编辑构建路径,这对我有用。

确保/gen 在/src 之前

【讨论】:

  • 每次当我将 /gen 放在 /src 之前,eclipse 都会占用整个内存并冻结我的计算机
【解决方案3】:

我通过在此处添加要导出的主项目的私有库来解决此问题:

Project Properties->Java Build Path->Order And Export

并确保选中 Android 私有库。

截图:

确保选中 google-play-services_lib.jar 和 google-play-services.jar。清理项目并重新运行,classNotfound 异常消失。

【讨论】:

  • 为我修好了。谢谢。仅供参考,这是在通过 GIT 丢弃对项目的 .classpath 文件所做的更改并再次选择“Android Private Properties”之后发生的,实际上确实将这两行额外的行添加回了 .classpath。
【解决方案4】:

转到订单并从项目属性中导出,并确保您在导出中包含所需的 jar,这是为我做的

【讨论】:

    【解决方案5】:

    我曾多次在打开包含其他 Android 库的旧项目时遇到此问题。对我有用的是:

    将 Android 移动到 Order and Export 选项卡的顶部并取消选择它。

    是的,这真的很重要。也许是我放弃 ADT 转而使用 Android Studio 的时候了!

    【讨论】:

      【解决方案6】:

      如果您尝试包含使用 jdk 1.7 而不是 1.6 编译的 jar,也会出现此错误。

      在我的情况下,我尝试使用 SDK 提供的 Ant 脚本而不是 ADT 打包我的应用程序来解决这个问题,我注意到了这些错误,而 ADT 没有向我显示:

        [dex] Pre-Dexing libjingle_peerconnection.jar -> libjingle_peerconnection-2f82c9bf868a6c58eaf2c3b2fe6a09f3.jar
         [dx]
         [dx] trouble processing:
         [dx] bad class file magic (cafebabe) or version (0033.0000)
         [dx] ...while parsing org/webrtc/StatsReport$Value.class
         [dx] ...while processing org/webrtc/StatsReport$Value.class
      

      我用 jdk 1.6 重新编译了我的 jar 并修复了错误。

      【讨论】:

        【解决方案7】:

        尝试转到 Project -&gt; Properties -&gt; Java Build Path -&gt; Order &amp; Export 并为您的项目以及您在应用程序中使用的所有其他库项目检查确认 Android 私有库。

        【讨论】:

          【解决方案8】:

          检查Java构建路径后,然后在清单文件中添加代码行。

          <meta-data
                      android:name="com.google.android.gms.version"
                      android:value="@integer/google_play_services_version" />
          

          【讨论】:

            猜你喜欢
            • 2015-09-25
            • 2021-12-10
            • 2016-03-13
            • 2015-04-28
            • 2011-12-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-12-28
            相关资源
            最近更新 更多