【问题标题】:NoClassFoundError after deleting a java file in android在android中删除java文件后出现NoClassFoundError
【发布时间】:2015-08-11 07:45:57
【问题描述】:

我删除了一个名为 ProductList_Activity.java 的活动文件。现在,当我运行该应用程序时,它会因以下错误而崩溃。如何解决?

错误日志:

E/AndroidRuntime(23686): FATAL EXCEPTION: main
E/AndroidRuntime(23686): Process: com.esouqatar.customer, PID: 23686
E/AndroidRuntime(23686): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.esouqatar.customer/com.esouqatar.customer.ProductList_Activity}: java.lang.ClassNotFoundException: Didn't find class "com.esouqatar.customer.ProductList_Activity" on path: DexPathList[[zip file "/data/app/com.esouqatar.customer-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
E/AndroidRuntime(23686):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2256)
E/AndroidRuntime(23686):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405)
E/AndroidRuntime(23686):    at android.app.ActivityThread.access$800(ActivityThread.java:149)
E/AndroidRuntime(23686):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324)
E/AndroidRuntime(23686):    at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(23686):    at android.os.Looper.loop(Looper.java:211)
E/AndroidRuntime(23686):    at android.app.ActivityThread.main(ActivityThread.java:5315)
E/AndroidRuntime(23686):    at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(23686):    at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(23686):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941)             
E/AndroidRuntime(23686):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:736)   
E/AndroidRuntime(23686): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.esouqatar.customer.ProductList_Activity" on path: DexPathList[[zip file "/data/app/com.esouqatar.customer-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
E/AndroidRuntime(23686):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
E/AndroidRuntime(23686):    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
E/AndroidRuntime(23686):    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
E/AndroidRuntime(23686):    at android.app.Instrumentation.newActivity(Instrumentation.java:1065)
E/AndroidRuntime(23686):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2246)
E/AndroidRuntime(23686):    ... 10 more
E/AndroidRuntime(23686):    Suppressed: java.lang.ClassNotFoundException: com.esouqatar.customer.ProductList_Activity
E/AndroidRuntime(23686):        at java.lang.Class.classForName(Native Method)
E/AndroidRuntime(23686):        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
E/AndroidRuntime(23686):        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
E/AndroidRuntime(23686):        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
E/AndroidRuntime(23686):        ... 13 more
E/AndroidRuntime(23686):    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

【问题讨论】:

  • 您是否删除了活动表单清单??
  • 你删除了类的所有对象后,你删除了吗?
  • 你重建整个项目了吗?
  • 我已将其从清单中删除
  • 我重建了 d 项目..thanx 它的工作

标签: android noclassdeffounderror


【解决方案1】:

NoClassDefFoundError: 在runtime 期间类的定义不可用时抛出。此错误还表明在编译应用程序期间找到了该类的定义,但在应用程序的classpath during runtime 中找不到该定义。更多信息请访问SO Answer

如何解决

一般来说,Clean & Rebuild Project Then Restart。 否则,

确认所有必需的 Java 类都包含在应用程序的类路径中。最常见的错误是在开始执行依赖于某些外部库的 Java 应用程序之前没有包含所有必需的类。Courtesy

【讨论】:

    【解决方案2】:

    Some 在您的代码中,该类仍在使用中。如果需要该文件,请查找并删除类实例化或恢复该文件。

    【讨论】:

    • 这可能是一条评论
    • @Robert 抱歉,但这里不能评论新的需要先获得一些声誉:P
    【解决方案3】:

    右击你的项目,然后Run As -> Java Application

    这为我解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多