如何解决;java.lang.NoClassDefFoundError“;?

如何解决;java.lang.NoClassDefFoundError“;?,java,android,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

我犯了一个错误。以下是日志:

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文件/类。但不是在构建路径上。 为什么,很难知道,因为您没有显示项目文件或同等文件


但是我很确定你现在可以解决这个问题。

看起来你的项目没有
com.quickblox.module.chat.smack.smack.SmackAndroid
class…@luigimendoza不应该抛出未找到的类?检查javadoc:编译当前执行的类时,搜索到的类定义存在,但是无法再找到定义。@LuiggiMendoza yes=,那是不是已经准备好了第13行@App?我尝试将该jar作为外部jar添加到libs文件夹和构建路径中!你检查过编译的jar文件了吗?该jar文件是否包含缺少类的jar文件?如果没有,那么设置中就有一些模糊的东西。如果我可以访问代码/打包的jar文件。我会打开它,看看里面有什么。这会给你一个很好的线索,告诉你哪里出了问题。基本上,我向quickbloX团队报告了同样的问题。他们说他们这边一切都很好。因此,缺少类的可能性很小。有什么解决办法吗?当我写这篇文章时,你应该检查jar文件。我不是指“quickBloX”的jar文件。我很确定jar文件真的很好。我说的更多的是你的jar文件。那个文件包含什么?哪些类、jar文件和其他资源。但最重要的是,它是否包含quickBloX中丢失的jar文件。您的错误消息表明这就是问题所在。您是指apk文件吗?