小弟在eclipse中安装了svn的插件后,再执行与Socket相关的代码,无端报出ClassNotFoundException异常,检查过该class的路径,没有什么问题,请各位大神帮忙解答一下,小弟在线等

解决方案 »

  1.   

    Eclipse 编译工程没错误?
    一般是java系统jar包未引用。默认Eclipse是自动引用的,除非工程有错误。
      

  2.   

    我并没有使用jar,该类是自己写的,异常信息如下10-21 04:10:09.292: W/System.err(5324): java.lang.ClassNotFoundException: Command
    10-21 04:10:09.303: W/System.err(5324):  at java.lang.Class.classForName(Native Method)
    10-21 04:10:09.303: W/System.err(5324):  at java.lang.Class.forName(Class.java:217)
    10-21 04:10:09.303: W/System.err(5324):  at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:2304)
    10-21 04:10:09.313: W/System.err(5324):  at java.io.ObjectInputStream.readNewClassDesc(ObjectInputStream.java:1663)
    10-21 04:10:09.313: W/System.err(5324):  at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:683)
    10-21 04:10:09.313: W/System.err(5324):  at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1806)
    10-21 04:10:09.313: W/System.err(5324):  at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787)
    10-21 04:10:09.313: W/System.err(5324):  at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2006)
    10-21 04:10:09.323: W/System.err(5324):  at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1963)
    10-21 04:10:09.323: W/System.err(5324):  at com.example.testsocket.SocketUtil$1.run(SocketUtil.java:69)
    10-21 04:10:09.323: W/System.err(5324):  at java.lang.Thread.run(Thread.java:856)
    10-21 04:10:09.333: W/System.err(5324): Caused by: java.lang.NoClassDefFoundError: Command
    10-21 04:10:09.343: W/System.err(5324):  ... 11 more
    10-21 04:10:09.343: W/System.err(5324): Caused by: java.lang.ClassNotFoundException: Didn't find class "Command" on path: /data/app/com.example.testsocket-2.apk
    10-21 04:10:09.343: W/System.err(5324):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
    10-21 04:10:09.353: W/System.err(5324):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
    10-21 04:10:09.353: W/System.err(5324):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
    10-21 04:10:09.353: W/System.err(5324):  ... 11 more
    10-21 04:10:09.353: W/System.err(5324): java.io.OptionalDataException
    10-21 04:10:09.363: W/System.err(5324):  at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:810)
    10-21 04:10:09.363: W/System.err(5324):  at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2006)
    10-21 04:10:09.363: W/System.err(5324):  at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1963)
    10-21 04:10:09.363: W/System.err(5324):  at com.example.testsocket.SocketUtil$1.run(SocketUtil.java:69)
    10-21 04:10:09.373: W/System.err(5324):  at java.lang.Thread.run(Thread.java:856)
    编译信息如下[2013-10-21 12:10:00 - TestSocket] Android Launch!
    [2013-10-21 12:10:00 - TestSocket] adb is running normally.
    [2013-10-21 12:10:00 - TestSocket] Performing com.example.testsocket.MainActivity activity launch
    [2013-10-21 12:10:00 - TestSocket] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'bianxin'
    [2013-10-21 12:10:02 - TestSocket] Application already deployed. No need to reinstall.
    [2013-10-21 12:10:02 - TestSocket] Starting activity com.example.testsocket.MainActivity on device emulator-5554
    [2013-10-21 12:10:03 - TestSocket] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.testsocket/.MainActivity }
      

  3.   

    看下这有没有解决的办法http://bbs.csdn.net/topics/390257670
    常见的原因1 所需要的支持类库放错了地方,并没有放在类路径(CLASSPATH环境变量)里面。
    2 使用了重复的类库,且版本不一致。导致低版本的被优先使用。
    3 类名错了,一般是使用Class.forName的时候,手工指定了类名的情况。
    4 没有导入纯JAVA驱动包。
    3解决方案1 确认你的类库在系统的CLASSPATH下面,如果是Tomcat,则可以放在tomcat/lib/目录下面。
    2 删除重复的类库,只保留最新的。
    3 尽可能不使用这种编译器无法为你检查的方式。
      

  4.   

     java.lang.ClassNotFoundException: Command
    没找到Command这个类。
      

  5.   

    Command类跟主程序在一个package里,我也不知道为什么就找不到这个类了
      

  6.   

    在Android工程一起那应该能找到的,除非是引入第三方的jar文件。你是序列化的类么? 我看你的错误好像是网络传输中把类进行了转换。
      

  7.   


    手工指定类名是什么意思?
    另外我并没有引用外部jar包
      

  8.   

    在哪里找,麻烦说的具体一些
    Command确实是序列化的类,但是java.io.OptionalDataException应该是因为没有找到Command类而造成的
      

  9.   

    哦,那你要把服务器的Command类和Android Command类保持一致,需要同样的包名,和同样的序列化ID。一般是把服务器端的类打成jar包,放到Android libs下面作为引用,就不会有这种问题了。