1

Android と Windows で、Java を使用してサーバー クライアント アプリケーションを作成しています。確認のためにユーザーの情報 (ユーザー名とパスワード) をサーバーに送信したいと考えています。クライアントは情報を含むオブジェクトを送信しますが、サーバーはそれを受け取りません! オブジェクトクラスは次のとおりです。

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());}

(この行の前に Object 変数を設定しました)

およびサーバーコード:

  ObjectInputStream inObj = new ObjectInputStream(new         BufferedInputStream(connection.getInputStream()));
        UserPass=(StringObject) inObj.readObject();
        System.out.println("UserName: " + UserPass.getUsername());
        System.out.println("Password: " + UserPass.getPassword());

クライアント プログラム (アンドロイド) がエラーでクラッシュします: キャッチされていない例外でスレッドが終了します。(ソケットと 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/ObjectInputStreamBufferedWriter/に置き換えると、bufferedReader正常に動作します! なぜこれが起こるのか誰か教えてもらえますか?

4

2 に答える 2

0

見積もり:

   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)

に罰金を表示できますConnectionThread.javaline 90? ネットワークとは何の関係もないかもしれないが、悪い/初期化されていない参照であるヌルポインタを取得しています。

于 2013-07-15T16:24:42.767 に答える