저는 Android와 Windows에 Java가 포함 된 서버 클라이언트 응용 프로그램을 작성하고 있습니다. 확인을 위해 사용자의 정보 (사용자 이름 및 암호)를 서버에 보내려고합니다. 클라이언트는 정보를 포함하는 객체를 전송하지만 서버는 그것을받지 못합니다!ObjectInputStream을 통해 객체 받기
package Model;
import java.io.Serializable;
public class StringObject implements Serializable {
private static final long serialVersionUID = 1L;
private String Username=null;
private String Password=null;
public void setPassword(String Password){
this.Password=Password;
}
public void setUsername(String Username){
this.Username=Username;
}
public String getPassword(){
return Password;
}
public String getUsername(){
return Username;
}
}
클라이언트 코드 :
private void Login(){
try {
ObjectOutputStream OutObj=new ObjectOutputStream(newBufferedOutputStream(connection.getOutputStream()));
OutObj.writeObject(UserPass);
OutObj.flush();
} catch (IOException e) {
Log.d("Application: ",e.toString());}
(I이 라인 전에 개체 변수를 설정 한)
및 서버 코드 :
ObjectInputStream inObj = new ObjectInputStream(new BufferedInputStream(connection.getInputStream()));
UserPass=(StringObject) inObj.readObject();
System.out.println("UserName: " + UserPass.getUsername());
System.out.println("Password: " + UserPass.getPassword());
여기 는 Object 클래스입니다
클라이언트 프로그램 (안드로이드)이 오류로 인해 충돌합니다. catch uncomaught E로 종료됩니다. xception. (소켓 및 I/O 코드 라인이 구분 스레드에)
07-15 12:43:59.626: W/dalvikvm(1306): threadid=13: thread exiting with uncaught exception (group=0x40a71930)
07-15 12:43:59.626: E/AndroidRuntime(1306): FATAL EXCEPTION: Thread-89
07-15 12:43:59.626: E/AndroidRuntime(1306): java.lang.NullPointerException
07-15 12:43:59.626: E/AndroidRuntime(1306): at com.shayan.filesharing.ConnectionThread.Login(ConnectionThread.java:90)
07-15 12:43:59.626: E/AndroidRuntime(1306): at com.shayan.filesharing.ConnectionThread.ProcessMessage(ConnectionThread.java:70)
07-15 12:43:59.626: E/AndroidRuntime(1306): at com.shayan.filesharing.ConnectionThread.run(ConnectionThread.java:47)
하지만이 ObjectOutputStream
/ObjectInputStream
BufferedWriter
/bufferedReader
로 교체 할 때 그것을 잘 작동합니다! 아무도 왜 이런 일이 일어 났는지 말해 줄 수 있니?
크래시 덤프와 오류 코드를 붙여 넣으면 어디에 있는지, 왜 그럴까요? – Shark
확실! 내 질문을 편집했습니다 ... –
로그인 방법에서 줄 90은 어느 것입니까? – user1676075