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

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

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

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

Android Studio

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

Q&A

2回答

2132閲覧

AndroidStudio 宣言しているのにエラー?

H30_inenaga

総合スコア18

Java

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

Android Studio

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

0グッド

0クリップ

投稿2018/07/01 15:05

編集2018/07/02 03:44

宣言しているのに何故かエラーが出ています。
Activitymain.xmlに何か書かなければいけないのでしょうか?

MainActtivity.java

java

1package com.example.a.server; 2 3import android.app.Activity; 4import android.os.Bundle; 5import android.widget.TextView; 6 7public class MainActivity extends Activity { 8 9 Server server; 10 TextView infoip, msg; 11 12 @Override 13 protected void onCreate(Bundle savedInstanceState) {//テキストの生成 14 super.onCreate(savedInstanceState); 15 setContentView(R.layout.activity_main); 16 infoip = (TextView) findViewById(R.id.infoip); 17 msg = (TextView) findViewById(R.id.msg); 18 server = new Server(this); //Server.javaに移動する 19 infoip.setText(server.getIpAddress()+":"+server.getPort()); 20 21 22 } 23 24 @Override 25 protected void onDestroy() { 26 super.onDestroy(); 27 server.onDestroy(); 28 } 29 30 31}

###Server.java

Java

1package com.example.a.server; 2 3import java.io.IOException; 4import java.io.InputStream; 5import java.io.OutputStream; 6import java.io.PrintStream; 7import java.net.InetAddress; 8import java.net.NetworkInterface; 9import java.net.ServerSocket; 10import java.net.Socket; 11import java.net.SocketException; 12import java.util.Enumeration; 13 14public class Server { 15 MainActivity activity; 16 ServerSocket serverSocket; 17 String message = ""; 18 static final int socketServerPORT = 0000; 19 InputStream in = null; 20 21 public Server(MainActivity activity) { 22 this.activity = activity; 23 Thread socketServerThread = new Thread(new SocketServerThread()); 24 socketServerThread.start(); 25 } 26 27 public int getPort() { 28 return socketServerPORT; 29 } 30 31 public void onDestroy() { 32 if (serverSocket != null) { 33 try { 34 serverSocket.close(); 35 } catch (IOException e) { 36 // TODO Auto-generated catch block 37 e.printStackTrace(); 38 } 39 } 40 } 41 42 private class SocketServerThread extends Thread {//スレッドの生成 43 44 int count = 0; 45 int size; 46 String str; 47 byte[] w = new byte[1024]; 48 49 50 @Override 51 public void run() { 52 try { 53 serverSocket = new ServerSocket(socketServerPORT); 54 55 while (true) {//通信が行われたとき 56 Socket socket = serverSocket.accept(); 57 in = socket.getInputStream(); 58 count++; 59 size = in.read(w); //数字が送られる 60 str = new String(w, 0, size, "UTF-8");//送られた値をString型に変える 61 message += str + "\n";//その値をテキストに入力 62 activity.runOnUiThread(new Runnable() { 63 @Override 64 public void run() { 65 activity.msg.setText(message); 66 } 67 }); 68 69 70 SocketServerReplyThread socketServerReplyThread = new SocketServerReplyThread(socket, count); 71 socketServerReplyThread.run(); 72 } 73 } catch (IOException e) { 74 // TODO Auto-generated catch block 75 e.printStackTrace(); 76 } 77 } 78 } 79 80 private class SocketServerReplyThread extends Thread { 81 82 private Socket hostThreadSocket; 83 int cnt; 84 85 SocketServerReplyThread(Socket socket, int c) { 86 hostThreadSocket = socket; 87 cnt = c; 88 } 89 90 @Override 91 public void run() { 92 OutputStream outputStream; 93 String msgReply = "Hello from Server, you are #" + cnt; 94 95 try { 96 outputStream = hostThreadSocket.getOutputStream(); 97 PrintStream printStream = new PrintStream(outputStream); 98 printStream.print(msgReply); 99 printStream.close(); 100 message += "replayed: " + msgReply + "\n"; 101 activity.runOnUiThread(new Runnable() { 102 @Override 103 public void run() { 104 activity.msg.setText(message); 105 } 106 }); 107 108 } catch (IOException e) { 109 // TODO Auto-generated catch block 110 e.printStackTrace(); 111 message += "Something wrong! " + e.toString() + "\n"; 112 } 113 114 activity.runOnUiThread(new Runnable() { 115 @Override 116 public void run() { 117 activity.msg.setText(message); 118 } 119 }); 120 } 121 } 122 123 public String getIpAddress() { 124 String ip = ""; 125 try { 126 Enumeration<NetworkInterface> enumNetworkInterfaces = NetworkInterface 127 .getNetworkInterfaces(); 128 while (enumNetworkInterfaces.hasMoreElements()) { 129 NetworkInterface networkInterface = enumNetworkInterfaces 130 .nextElement(); 131 Enumeration<InetAddress> enumInetAddress = networkInterface 132 .getInetAddresses(); 133 while (enumInetAddress.hasMoreElements()) { 134 InetAddress inetAddress = enumInetAddress 135 .nextElement(); 136 if (inetAddress.isSiteLocalAddress()) { 137 ip += "Server running at : " 138 + inetAddress.getHostAddress(); 139 } 140 } 141 } 142 143 } catch (SocketException e) { 144 // TODO Auto-generated catch block 145 e.printStackTrace(); 146 ip += "Something Wrong! " + e.toString() + "\n"; 147 } 148 return ip; 149 } 150}

activity_main.xml

xml

1<?xml version="1.0" encoding="utf-8"?> 2<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 tools:context="com.example.m_yuta.server.MainActivity"> 8 9 <TextView 10 android:layout_width="wrap_content" 11 android:layout_height="wrap_content" 12 android:text="Hello World!" 13 app:layout_constraintBottom_toBottomOf="parent" 14 app:layout_constraintLeft_toLeftOf="parent" 15 app:layout_constraintRight_toRightOf="parent" 16 app:layout_constraintTop_toTopOf="parent" /> 17 18</android.support.constraint.ConstraintLayout>

エラーメッセージ

Error:(16, 46) エラー: シンボルを見つけられません
シンボル: 変数 infoip
場所: クラス id
Error:(17, 43) エラー: シンボルを見つけられません
シンボル: 変数 msg
場所: クラス id
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
Compilation failed; see the compiler error output for details.

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

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

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

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

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

keicha_hrs

2018/07/01 18:26 編集

activity_main.xmlに配置したTextViewに、android:id="@+id/infoip"と指定したものと、android:id="@+id/msg"と指定したものがそれぞれ確かに存在していますか?不明ならactivity_main.xmlのソースも提示してください。
H30_inenaga

2018/07/02 03:45

activity_main.xmlのソースを提示しました。たぶん、書かれていませんよね・・・。
guest

回答2

0

IDを与えていないことは想像がついたけど、それ以前にTextViewが1つしかないし。これでどうやって2つのTextViewを扱えると考えたのでしょうか?

TextViewにIDを与えるには、レイアウトエディターで当該TextViewをシングルクリックして選択した状態で、右側に出てくるAttributesのID欄に設定したいIDを入力します。

XMLの記述で直接指定するならば、

XML

1 <TextView 2 android:id="@+id/msg" 3 以下略

のように、android:id="@+id/与えたいID"の書式で記述します。ただ、普通は前述のGUI操作でやった方がいいと思いますが。

ただ、これは極めて基礎的な話ですよ。どういう順序でAndroid開発の学習をしているのでしょうか。入門本の読了さえしていないように思えます。入門をすべてすっ飛ばして、いきなり具体的なターゲットがあるテクニカルなウェブサイトばかり閲覧しているのでしょうか。

音声認識をやってみたいとかスマートグラスを扱ってみたいとか、いろいろやってみたいのは結構なことです。それは他者がどうこう言うことではないです。ただ、こんな初歩的な質問が出てくる有様では、無理な背伸びしていると言わざるを得ません。それでは不明点ばかりで全く進めないでしょう。

投稿2018/07/02 04:51

編集2018/07/02 04:55
keicha_hrs

総合スコア6768

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

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

H30_inenaga

2018/07/03 06:01

そうですね、最もです。 少し焦っていました。
guest

0

R.idにinfoipがない、といってるんじゃないでしょうか

投稿2018/07/01 22:13

y_waiwai

総合スコア87747

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問