0

CサーバーとAndroidクライアント間のTCP接続を確立するための次のコードがあります。c サーバーは正常に動作します。ただし、次のコードは、Eclipse でのビルドに関するエラーを示しています。

package com.app.client.app;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.io.BufferedReader;
import java.io.BufferedWriter; 
import java.io.IOException; 
import java.io.InputStream;
import java.io.OutputStreamWriter; 
import java.io.InputStreamReader;
import java.io.PrintWriter; 
import java.net.InetAddress; 
import java.net.Socket; 
import java.net.UnknownHostException; 

import android.util.Log; 

public class my_activity extends Activity
{ 
   private TextView txt;

   @Override 
   public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
      Button b = (Button)findViewById(R.id.button1);
      txt = (TextView)findViewById(R.id.textView1);
      b.setOnClickListener(new View.OnClickListener()
      {
         @Override
         public void onClick(View v)
         {
            connectSocket("Hello");

        }
      });
} 

private void connectSocket(String a){ 

    try { 
        InetAddress serverAddr = InetAddress.getByName("192.168.1.2"); 
        Log.d("TCP", "C: Connecting..."); 
        Socket socket = new Socket(serverAddr, 4444); 

        message = "1";

        PrintWriter out = null;
        BufferedReader in = null;

        try { 
            Log.d("TCP", "C: Sending: '" + message + "'"); 
            out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true); 
            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));                

            out.println(message);
            while ((in.readLine()) != null) {
                txt.append(in.readLine());
            }

            Log.d("TCP", "C: Sent."); 
            Log.d("TCP", "C: Done.");               

        } catch(Exception e) { 
            Log.e("TCP", "S: Error", e); 
        } finally { 
            socket.close(); 
        } 

    } catch (UnknownHostException e) {
        Log.e("TCP", "C: UnknownHostException", e); 
        e.printStackTrace(); 
    } catch (IOException e) {
        Log.e("TCP", "C: IOException", e); 
        e.printStackTrace(); 
    }       
} 
}

ビルド時に表示されるエラーは次のとおりです。

main cannot be resolved or is not a field   my_activity.java    /Androidclient/src/com/app/client/app   line 29 Java Problem

この問題を解決するにはどうすればよいですか? 前もって感謝します。

4

1 に答える 1

0

アクティビティ内でAndroidManifest.xmlを設定する必要があります。それを見つけて、次のようにメインアクティビティを追加します。

 <application android:icon="@drawable/icon" android:label="@string/app_name">

    <activity android:name="my_activity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>  
</application>

これにより、これがメインアクティビティであり、アプリケーションの起動時に起動する必要があることがAndroidシステムに通知されます。

あなたがアンドロイドに不慣れであるならば、私はあなたがこれを読むことを提案します

于 2012-06-20T09:33:59.800 に答える