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

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

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

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

Android Studio

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

Q&A

解決済

3回答

3057閲覧

シンボルを見つけられません

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

Android Studio

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

0グッド

0クリップ

投稿2016/10/03 00:44

イメージ説明

今このように Cannot resolve symbolというエラーが起きているのですが、解決策がわかりません。
ファイル名はあっているはずです。

public class ds extends Activity { private MainSurface surface = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //画面の向きを縦に固定 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); surface = new MainSurface(getApplicationContext()); surface.setRenderer(surface); surface.setFocusable(true); surface.setKeepScreenOn(true); setContentView(activity_ds.xml); } @Override protected void onResume() { super.onResume(); surface.onResume(); } @Override protected void onPause() { super.onPause(); surface.onPause(); } public class MainSurface extends GLSurfaceView implements Renderer, SensorEventListener { //センサー public SensorManager sensorManager = null; //センサーのフラグ public boolean sensorMRegisted = false; public boolean sensorARegisted = false; //回転行列 public static final int MATRIX_SIZE = 16; float[] inR = new float[MATRIX_SIZE]; float[] outR = new float[MATRIX_SIZE]; float[] I = new float[MATRIX_SIZE]; //センサーの値保持 public float[] orientationValues = new float[3]; public float[] magneticValues = new float[3]; public float[] accelerometerValues = new float[3]; //傾きの角度 public int[] orientDgrees = new int[3]; //ポリゴン public float box[] = new float[] { //前面 -0.6f, -0.6f, 0.1f, 0.6f, -0.6f, 0.1f, -0.6f, 0.6f, 0.1f, 0.6f, 0.6f, 0.1f, //背面 -0.6f, -0.6f, -0.1f, -0.6f, 0.6f, -0.1f, 0.6f, -0.6f, -0.1f, 0.6f, 0.6f, -0.1f, //左面 -0.6f, -0.6f, 0.1f, -0.6f, 0.6f, 0.1f, -0.6f, -0.6f, -0.1f, -0.6f, 0.6f, -0.1f, //右面 0.6f, -0.6f, -0.1f, 0.6f, 0.6f, -0.1f, 0.6f, -0.6f, 0.1f, 0.6f, 0.6f, 0.1f, //上面 -0.6f, 0.6f, 0.1f, 0.6f, 0.6f, 0.1f, -0.6f, 0.6f, -0.1f, 0.6f, 0.6f, -0.1f, //下面 -0.6f, -0.6f, 0.1f, -0.6f, -0.6f, -0.1f, 0.6f, -0.6f, 0.1f, 0.6f, -0.6f, -0.1f, }; public FloatBuffer cubeBuff; //頂点座標バッファ public MainSurface(Context context) { super(context); Log.d(MainSurface.class.getName(), "constractor"); //バッファの生成 cubeBuff = makeFloatBuffer(box); } @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { Log.d(MainSurface.class.getName(), "onSurfaceCreated"); } @Override public void onDrawFrame(GL10 gl) { //背面塗り潰し gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); //モデルビュー行列の指定 gl.glMatrixMode(GL10.GL_MODELVIEW); gl.glLoadIdentity(); GLU.gluLookAt(gl, 0, 0, 3, 0, 0, 0, 0, 1, 0); //頂点配列の指定 gl.glVertexPointer(3, GL10.GL_FLOAT, 0, cubeBuff); gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); gl.glPushMatrix(); gl.glRotatef(orientDgrees[1], -1.0f, 0.0f, 0.0f); gl.glRotatef(orientDgrees[2], 0.0f, -1.0f, 0.0f); gl.glRotatef(orientDgrees[0], 0.0f, 0.0f, -1.0f); //前面と背面のプリミティブの描画 gl.glColor4f(1.0f, 0, 0, 1.0f); gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4); gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 4, 4); //左面と右面のプリミティブの描画 gl.glColor4f(0, 1.0f, 0, 1.0f); gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 8, 4); gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 12, 4); //上面と下面のプリミティブの描画 gl.glColor4f(0, 0, 1.0f, 1.0f); gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 16, 4); gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 20, 4); gl.glPopMatrix(); } @Override public void onSurfaceChanged(GL10 gl, int width, int height) { // ここから四角形を表示? gl.glMatrixMode(GL10.GL_PROJECTION); gl.glLoadIdentity(); gl.glViewport(0, 0, width, height); GLU.gluPerspective(gl, 45.0f, ((float) width) / height, 1f, 100f); //背面塗り潰し色の指定 gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f); //デプスバッファ gl.glEnable(GL10.GL_DEPTH_TEST); gl.glEnable(GL10.GL_CULL_FACE); gl.glDepthFunc(GL10.GL_LEQUAL); gl.glClearDepthf(1.0f); //シェーディング gl.glShadeModel(GL10.GL_SMOOTH); } @Override public void onResume() { super.onResume(); //センサーのインスタンス初期化 if (sensorManager == null) { sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); } //磁界センサーのリスナー登録 List<Sensor> sensorsMagnetic = sensorManager.getSensorList(Sensor.TYPE_MAGNETIC_FIELD); //加速度センサーのリスナー登録 List<Sensor> sensorsAcceler = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER); if (sensorsMagnetic.size() > 0 && sensorsAcceler.size() > 0) { sensorMRegisted = sensorManager.registerListener(this, sensorsMagnetic.get(0), SensorManager.SENSOR_DELAY_FASTEST); sensorARegisted = sensorManager.registerListener(this, sensorsAcceler.get(0), SensorManager.SENSOR_DELAY_FASTEST); } else { //センサーが不足していればメッセージを表示 Toast.makeText(getApplicationContext(), "Sensors are running short!", Toast.LENGTH_LONG).show(); } } @Override public void onPause() { super.onPause(); //センサー解除 if (sensorMRegisted || sensorARegisted) { sensorManager.unregisterListener(this); sensorMRegisted = false; sensorARegisted = false; } } /* * onSensorChanged()はセンサの値が変更された際に呼び出されるメソッド */ @Override public void onSensorChanged(SensorEvent event) { switch (event.sensor.getType()) { case Sensor.TYPE_MAGNETIC_FIELD: magneticValues = event.values.clone(); break; case Sensor.TYPE_ACCELEROMETER: accelerometerValues = event.values.clone(); break; } //センサーから得た値を端末の傾き角度に変換する処理 if (magneticValues != null && accelerometerValues != null) { SensorManager.getRotationMatrix(inR, I, accelerometerValues, magneticValues); //Activityの表示が縦固定の場合。横向きになる場合は要修正 SensorManager.remapCoordinateSystem(inR, SensorManager.AXIS_X, SensorManager.AXIS_Z, outR); SensorManager.getOrientation(outR, orientationValues); //ラジアンを角度に変換 orientDgrees[0] = (int) Math.toDegrees(orientationValues[0]); orientDgrees[1] = (int) Math.toDegrees(orientationValues[1]); orientDgrees[2] = (int) Math.toDegrees(orientationValues[2]); } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } } private static FloatBuffer makeFloatBuffer(float[] values) { ByteBuffer bb = ByteBuffer.allocateDirect(values.length * 4); bb.order(ByteOrder.nativeOrder()); FloatBuffer fb = bb.asFloatBuffer(); fb.put(values); fb.position(0); return fb; } }

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

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

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

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

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

guest

回答3

0

ベストアンサー

setContentViewに渡すべき値はファイル名ではなくリソースIDです。
以下のように渡すのが正しいと思われます。

setContentView(R.layout.activity_ds);

余談ですが、もしファイル名を渡したいのでしたらダブルクォーテーションで括るべきです。
paroyasuさんの渡し方では、activity_dsというオブジェクトの、xmlというメンバを渡すことになります。

投稿2016/10/03 01:19

Kmassa

総合スコア161

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

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

退会済みユーザー

退会済みユーザー

2016/10/03 01:29

setContentView("activity_ds.xml"); こういう風にくくったら Cannot resolbe method'SetcontentView(java.lang.String)と出ました。
Kmassa

2016/10/03 02:05

ファイル名を渡すときにダブルクォーテーションで括るのは、あくまでも「余談」です。 その上に書いてあるように、リソースIDを渡して下さい。
退会済みユーザー

退会済みユーザー

2016/10/03 04:14

エラーが消えたのでrunやデバックができるようになりました。 ありがとうございました
guest

0

きちんと一から勉強しているなら、何でこんな書き方をしているのか不思議なレベルのコードです。どのサンプルコードをみても、そんな書き方をしているコードは存在しないはずです。
正しい書き方は、先の回答にあるとおり、R.id.ファイル名です。

投稿2016/10/03 02:38

編集2016/10/03 02:45
swordone

総合スコア20651

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

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

0

あなたはR.idやR.string、R.layoutをよくわからない魔法の言葉と思っていませんか?

Androidはプロジェクト内に存在する全てのリソースを一意のIDで管理します。これはプロジェクトをコンパイルした時にできるR.javaに記載されます。

例えば、レイアウトファイルにアクセスするならR.lyout.ファイル名(拡張子無し)のようにします。

あと、メソッドを使うときはリファレンスを読みましょう。

投稿2016/10/03 02:11

yona

総合スコア18155

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問