質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

1445閲覧

シンボルを見つけられません Run エラー

H30_inenaga

総合スコア18

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2018/11/12 10:39

解決したい課題

Runエラーの解決及び実行することです。

###何の作業をしていたのか
SocketClient.javaを作成し、AndroidStudioでRun'app'を実行して、スマホにより動作確認をする予定だった。

###エラーメッセージ

  • Error:(47, 55) エラー: シンボルを見つけられません

シンボル: 変数 addressEditText
場所: クラス id

  • Error:(48, 52) エラー: シンボルを見つけられません

シンボル: 変数 portEditText
場所: クラス id

  • Error:(49, 48) エラー: シンボルを見つけられません

シンボル: 変数 responseTextView
場所: クラス id

  • Error:(51, 49) エラー: シンボルを見つけられません

シンボル: 変数 timer
場所: クラス id

  • Error:(55, 49) エラー: シンボルを見つけられません

シンボル: 変数 start_button
場所: クラス id

  • Error:(57, 50) エラー: シンボルを見つけられません

シンボル: 変数 start_button2
場所: クラス id

  • Error:(59, 50) エラー: シンボルを見つけられません

シンボル: 変数 start_button3
場所: クラス id

  • Error:(61, 50) エラー: シンボルを見つけられません

シンボル: 変数 start_button4
場所: クラス id

  • Error:(65, 55) エラー: シンボルを見つけられません

シンボル: 変数 stop_button
場所: クラス id

  • Error:Execution failed for task ':app:compileDebugJavaWithJavac'.

Compilation failed; see the compiler error output for details.

Mainactivity.java (エラーメッセージに関係のあるソースコード)

java

1import android.os.AsyncTask; 2import android.os.Bundle; 3import android.os.Handler; 4import android.support.v7.app.AppCompatActivity; 5import android.view.View; 6import android.widget.Button; 7import android.widget.EditText; 8import android.widget.TextView; 9 10import java.io.IOException; 11import java.io.OutputStream; 12import java.net.Socket; 13import java.net.UnknownHostException; 14import java.text.SimpleDateFormat; 15import java.util.Locale; 16 17import static com.example.●●●.socketclient.Globalclass.aizu; 18 19public class MainActivity extends AppCompatActivity implements 20 Runnable, View.OnClickListener { 21 22 private long startTime; 23 24 TextView response; 25 EditText editTextAddress, editTextPort; 26 27 private TextView timerText; 28 private Button startButton; 29 private Button startButton2; 30 private Button startButton3; 31 private Button startButton4; 32 33 private final Handler handler = new Handler(); 34 private volatile boolean stopRun = false; 35 36 private SimpleDateFormat dataFormat = 37 new SimpleDateFormat("mm:ss.SS", Locale.JAPAN); 38 Globalclass globalclass; 39 40 41 @Override 42 protected void onCreate(Bundle savedInstanceState) { 43 super.onCreate(savedInstanceState); 44 setContentView(R.layout.activity_main); 45 editTextAddress = (EditText) findViewById(R.id.addressEditText); 46 editTextPort = (EditText) findViewById(R.id.portEditText); 47 response = (TextView) findViewById(R.id.responseTextView); 48 49 timerText = (TextView) findViewById(R.id.timer); 50 timerText.setText(dataFormat.format(0)); 51 //タイマーを設置する 52 53 startButton = (Button) findViewById(R.id.start_button); 54 startButton.setOnClickListener(this); 55 startButton2 = (Button) findViewById(R.id.start_button2); 56 startButton2.setOnClickListener(this); 57 startButton3 = (Button) findViewById(R.id.start_button3); 58 startButton3.setOnClickListener(this); 59 startButton4 = (Button) findViewById(R.id.start_button4); 60 startButton4.setOnClickListener(this); 61 //タップボタンを設置する 62 63 Button stopButton = (Button) findViewById(R.id.stop_button); 64 stopButton.setOnClickListener(this); 65 //ストップボタンも設置 66 67 } 68 69 @Override 70 public void onClick(View arg0) { 71 Thread thread; 72 // if分を用いてタップボタンごとにパターンを変える 73 if (arg0 == startButton){ 74 aizu=1; 75 stopRun = false; 76 thread = new Thread(this);//スレッド作成 77 thread.start(); 78 Client myClient = new Client(editTextAddress.getText() 79 .toString(), Integer.parseInt(editTextPort 80 .getText().toString()), response);//clientクラスにポート番号、IPアドレスを渡す。 81 myClient.execute(); 82 83 startTime = System.currentTimeMillis(); 84 85 }else if(arg0==startButton2){ 86 aizu=2; 87 stopRun = false; 88 thread = new Thread(this); 89 thread.start(); 90 Client myClient = new Client(editTextAddress.getText() 91 .toString(), Integer.parseInt(editTextPort 92 .getText().toString()), response); 93 myClient.execute(); 94 95 startTime = System.currentTimeMillis(); 96 }else if(arg0==startButton3){ 97 aizu=3; 98 stopRun = false; 99 thread = new Thread(this); 100 thread.start(); 101 Client myClient = new Client(editTextAddress.getText() 102 .toString(), Integer.parseInt(editTextPort 103 .getText().toString()), response); 104 myClient.execute(); 105 106 startTime = System.currentTimeMillis(); 107 }else if(arg0==startButton4){ 108 aizu=4; 109 stopRun = false; 110 thread = new Thread(this); 111 thread.start(); 112 Client myClient = new Client(editTextAddress.getText() 113 .toString(), Integer.parseInt(editTextPort 114 .getText().toString()), response); 115 myClient.execute(); 116 117 startTime = System.currentTimeMillis(); 118 } 119 else{ 120 stopRun = true; 121 timerText.setText(dataFormat.format(0)); 122 } 123 } 124 125 @Override 126 public void run() {//ストップウオッチの機能を作る 127 // 10 msec order 128 int period = 10; 129 130 while (!stopRun) { 131 // sleep: period msec 132 try { 133 Thread.sleep(period); 134 } 135 catch (InterruptedException e) { 136 e.printStackTrace(); 137 stopRun = true; 138 } 139 140 handler.post(new Runnable() { 141 @Override 142 public void run() { 143 long endTime = System.currentTimeMillis(); 144 // カウント時間 = 経過時間 - 開始時間 145 long diffTime = (endTime - startTime); 146 147 timerText.setText(dataFormat.format(diffTime)); 148 149 } 150 }); 151 } 152 } 153}

Client.java

java

1import android.os.AsyncTask; 2import android.widget.TextView; 3 4import java.io.IOException; 5import java.io.OutputStream; 6import java.net.Socket; 7import java.net.UnknownHostException; 8 9import static com.example.●●●.socketclient.Globalclass.aizu; 10 11public class Client extends AsyncTask<Void, Void, Void> { 12 13 String dstAddress; 14 int dstPort; 15 String response = ""; 16 TextView textResponse; 17 18 int w=1; 19 int b=2; 20 21 Client(String addr, int port,TextView textResponse) {//MainActivityからIPアドレスとポート番号を受け取る 22 dstAddress = addr; 23 dstPort = port; 24 this.textResponse=textResponse; 25 } 26 27 28 @Override 29 protected Void doInBackground(Void... arg0) { 30 31 Socket socket = null; 32 33 try { 34 35 socket = new Socket(dstAddress, dstPort); 36 String msgReply="1"; 37 String msgReply2="2"; 38 String msgReply3="3"; 39 String msgReply4="4"; 40 OutputStream outputStream = socket.getOutputStream();//出力ストリームを作る 41 42 if(aizu==1) {//聴覚障がい者の受講者が持つスマートフォンに送信し、テキストに送信した値を表示する 43 byte[] w = msgReply.getBytes("UTF-8"); 44 outputStream.write(w); 45 outputStream.flush(); 46 response += msgReply + "\n"; 47 } 48 if(aizu==2) {//聴覚障がい者の受講者が持つスマートフォンに送信し、テキストに送信した値を表示する 49 byte[] w = msgReply2.getBytes("UTF-8"); 50 outputStream.write(w); 51 outputStream.flush(); 52 response += msgReply2 + "\n"; 53 } 54 if(aizu==3) {//聴覚障がい者の受講者が持つスマートフォンに送信し、テキストに送信した値を表示する 55 byte[] w = msgReply3.getBytes("UTF-8"); 56 outputStream.write(w); 57 outputStream.flush(); 58 response += msgReply3 + "\n"; 59 } 60 if(aizu==4) {//聴覚障がい者の受講者が持つスマートフォンに送信し、テキストに送信した値を表示する 61 byte[] w = msgReply4.getBytes("UTF-8"); 62 outputStream.write(w); 63 outputStream.flush(); 64 response += msgReply4 + "\n"; 65 } 66 67 68 69 } catch (UnknownHostException e) { 70 // TODO Auto-generated catch block 71 e.printStackTrace(); 72 response = "UnknownHostException: " + e.toString(); 73 } catch (IOException e) { 74 // TODO Auto-generated catch block 75 e.printStackTrace(); 76 response = "IOException: " + e.toString(); 77 } finally { 78 if (socket != null) { 79 try { 80 socket.close(); 81 } catch (IOException e) { 82 // TODO Auto-generated catch block 83 e.printStackTrace(); 84 } 85 } 86 } 87 return null; 88 } 89 90 @Override 91 protected void onPostExecute(Void result) { 92 textResponse.setText(response); 93 super.onPostExecute(result); 94 } 95 96}

Globalclass.java

java

1import android.app.Application; 2 3public class Globalclass extends Application { 4 static int aizu; 5 public void GlabalsAllInit(){ 6 aizu=0; 7 } 8}

調べたこと

http://doshirouto.wp.xdomain.jp/java/java_study/2380
上記のURLより、
(1)定義していないメソッド、変数などを使用している。
※特に、変数を指定したクラスの外から変数を使用しようとするパターンが多い。
(2)オブジェクトが正しく生成されていない。
※new忘れが多い。
(3)公開されていないメンバーを呼び出している。
※public、protectedを確認。
(4)クラスが正しく読み込めていない。
※import忘れ、extends忘れ、implements忘れに注意
であることは知っているのですが、どのミスが影響しているか自分では判断できていません。

変数(※timerだとか、startbuttonだとか)に対するxmlファイルが出来ていないことが原因かなと考えているのですが、助言をお願いしますm(_ _)m

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

R.layout.activity_mainやR.id.addressEditTextのようなRというクラスは、XMLファイルの記述によって自動生成されるR.javaを参照しています。「変数に対するXMLファイルが出来る」のではなく「XMLファイルの内容に応じてR.javaが出来る」という方向です。ですから考え方が逆です。

例として、レイアウトXMLファイルで

xml

1 <TextView 2 android:layout_width="wrap_content" 3 android:layout_height="wrap_content" 4 android:id="@+id/textview1" />

のように記述すれば、R.idにtextview1という名前の値が追加されます。今回の例で言えば、activity_main.xmlに記述したタグに、timerとかstartbuttonのような名前を間違いなく与えているでしょうか。

投稿2018/11/12 14:35

keicha_hrs

総合スコア6768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

H30_inenaga

2018/11/12 17:54

activity_main.xmlの記述のタグにところどころミスが見られたので、修正しました。 その結果、実行が出来ました。 色々と聞きたいことはございますが、ひとまずこの質問の回答になっていますのでBAをつけさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問