こんにちは!KNDです。
今回はjavaを使って開発をしている際に出るエラーを
備忘録がてら残しておこうと思います。
シンボルが見つけられません
シンボルとは象徴などを指す言葉ですが、プログラミングでは
少々違う意味合いを持つようです。
調べてみると・・・
プログラミングでシンボル (Symbol) というのは、
数値を与えることなく、その名前で識別することが可能な定数です。
はて?
定数とはなんでしょうか?
定数とは値を変更できない変数。
つまり、定数が見つからないよ!
しっかり記述して!ということでしょうか。
私がこのエラーに出会った時はこのような場面でした。
「ゲームスタート」「ゲームプレイ」「ゲームオーバー」の
3つの条件に場合分けをしてそれぞれ場合分けに応じた動きを書いて
「よし!試すか。」と思いデバッグした時でした。
しかし、この時私はoverSceneのメソッドの定義を
すっかり忘れていました・・・。
public void onDraw(Canvas canvas) {
canvasCX=canvas.getWidth();
canvasCY=canvas.getHeight();
switch (gameState){
case GAME_START:
startScene(canvas);
break;
case GAME_PLAY:
playScene(canvas);
break;
case GAME_OVER:
overScene(canvas);
break;
}
}
public void startScene(Canvas canvas){
startImage= Bitmap.createScaledBitmap(startImage, canvas.getWidth(),
canvas.getHeight(), true);
canvas.drawBitmap(startImage,0,0,null);
canvas.drawBitmap(startButton,
canvasCX-startButton.getWidth()/2,
canvasCY-startButton.getHeight(),null);
}
public void playScene(Canvas canvas){
canvas.drawBitmap(bgImage,0,0,null);
}
青字で示した箇所はメソッドが存在しており、
switchで場合分けしたcaseのメソッドは働きます。
赤字はメソッドを書いていない状態だと、
javaはどういう動作を行えば良いのか探しますが
メソッドがないので動きが分からない。といった状態になります。
これをエラーとして吐き出しているようです。
あくまで一例なので、他にも定数の誤字などでも同様の
「シンボルが見つかりません」のエラーは出ます。
大文字、小文字も区別されますので自身の入力の洗い出しから
行うと意外に問題が解決することもあります。
※Android Studioでは定数だけでなく変数、メソッドなどの不一致、定義なしも
発見してくれるのでデバッグ段階でエラーを吐きだしてくれます。
この記事がお役に立てれば幸いです。
コメント