初始化VM java / lang / NoClassDefFoundError期间出错:java / lang / ref / FinalReference

时间:2012-03-29 21:31:32

标签: java android

我是IT学生,我还在学习java和android开发 我正在测试桌面应用程序和Android应用程序之间的一些udp流量。 但每次我尝试运行Android应用程序时都会显示以下错误消息:

VM初始化期间发生错误 java / lang / NoClassDefFoundError:java / lang / ref / FinalReference

这是UDP客户端的代码

    import java.io.IOException;

    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.SocketAddress;

    import android.app.Activity;
    import android.util.Log;

    public class Client extends Activity {
    public static void main(String[] args) throws IOException {
    try {
    int bufSize = 4096;
    int port = 12345;
    DatagramSocket sock = new DatagramSocket(port);
    sock.setReceiveBufferSize(bufSize);
    byte[] buffer = new byte[bufSize];

    while (true) {
        DatagramPacket p = new DatagramPacket(buffer, bufSize);
        sock.receive(p);
        Log.d("Client", "Received: " + new String(p.getData()));
    }
    }finally{}
    }
    }

代码可能包含一些可能不起作用的部分,但它不会出错。

我只是想知道虚拟机无法启动的原因。

grtz

4 个答案:

答案 0 :(得分:4)

看起来您的Java SDK安装不正确。

尝试查看java是否在您的系统路径中。您可以在终端上尝试javac -version命令。如果产生相同的错误,则需要将其添加到路径中。

此外,这家伙似乎遇到了与你相同的问题,请检查link

答案 1 :(得分:2)

我找到了解决我错误的方法 我使用android项目就像一个java应用程序,带有一个main函数。这给了无法部署虚拟机的问题 代码需要在活动的oncreate函数中,而不是在main函数中 谢谢您的帮助。

grtz

答案 2 :(得分:0)

答案 3 :(得分:0)

按顺序在UBUNTU 12.04LTS上执行以下步骤:

  1. chmod 755 eclipse.desktop
  2. 检查javac -version
  3. 找到javac的正确路径
  4. 查找JDK的正确路径
  5. 使用vi在文件/opt/eclipse/eclipse.ini顶部添加以下行:

    -vm
    /usr/bin  /*if javac is in /usr/bin */
    /usr/share/jdk7/usr/java/jdk1.7.0_25/bin /*if this is the path for JDK */