java - 如何解决 "java.lang.NoClassDefFoundError"?

标签 java android

我收到错误。这是日志:

04-01 22:04:41.010: I/dalvikvm(19541): Could not find method com.quickblox.module.chat.smack.SmackAndroid.init, referenced from method com.quickblox.videochatsample.ui.App.onCreate
04-01 22:04:41.010: W/dalvikvm(19541): VFY: unable to resolve static method 13789: Lcom/quickblox/module/chat/smack/SmackAndroid;.init (Landroid/content/Context;)Lcom/quickblox/module/chat/smack/SmackAndroid;
04-01 22:04:41.010: D/dalvikvm(19541): VFY: replacing opcode 0x71 at 0x0003
04-01 22:04:41.010: D/AndroidRuntime(19541): Shutting down VM
04-01 22:04:41.010: W/dalvikvm(19541): threadid=1: thread exiting with uncaught exception (group=0x40c11a68)
04-01 22:04:41.020: E/AndroidRuntime(19541): FATAL EXCEPTION: main
04-01 22:04:41.020: E/AndroidRuntime(19541): java.lang.NoClassDefFoundError: com.quickblox.module.chat.smack.SmackAndroid
04-01 22:04:41.020: E/AndroidRuntime(19541):    at com.quickblox.videochatsample.ui.App.onCreate(App.java:13)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:973)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3971)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at android.app.ActivityThread.access$1300(ActivityThread.java:128)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at android.os.Looper.loop(Looper.java:137)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at android.app.ActivityThread.main(ActivityThread.java:4517)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at java.lang.reflect.Method.invokeNative(Native Method)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at java.lang.reflect.Method.invoke(Method.java:511)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
04-01 22:04:41.020: E/AndroidRuntime(19541):    at dalvik.system.NativeStart.main(Native Method)  

代码:

package com.quickblox.videochatsample.ui;

import android.app.Application;

import com.quickblox.module.chat.smack.SmackAndroid;


public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        SmackAndroid.init(this);
    }
}

最佳答案

简单的谷歌搜索,你就会找到答案。

答案是您的 jar 文件不包含正确的 jar 文件,而该文件包含您需要的 java 类。

如果您不使用任何构建工具。那么我建议你使用它。这样您就可以告诉构建工具包含那个非常重要的 jar 文件。

像ivy、maven、ant等构建工具

在 IDE 中编码时可以使用该类的原因。 IDE 是否出于某种原因在其类路径中包含该 jar 文件/类?但不在构建路径上。 为什么,很难知道,因为您还没有显示您的项目文件或同等文件。

但我很确定您现在可以解决问题。

关于java - 如何解决 "java.lang.NoClassDefFoundError"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22792038/

相关文章:

android - 我可以在没有 setOngoing(true) 的情况下启动前台服务吗?

java - 在java中没有这样的关键字的静态接口(interface)和普通接口(interface)有什么区别?

java - 如果 @Singleton bean 中有一个 @Stateless 字段会发生什么?

用于统计单词的Java函数

java - RabbitMq 队列已满

php - 将条形码 ID 作为输入传递给 HTML 表单

android - 如何在Android listView中实现复选框来删除列表项

android - 从 SD 卡(上的目录)获取文件列表的好方法是什么?

Java - 如何避免接口(interface)中的静态和默认方法

java - Android中如何访问Activity对象