#topicpath

*3. エラーメッセージ例と対処方法 [#o3faf2fd]

#contents

~プログラムに問題があると、ビルドエラーが発生して正しくプログラムが実行できなくなります。この場合、原因となるブロックの設定を修正しないと実行できるようになりません。本章では、主なビルドエラーを例に、対処方法を掲載していきます。
~
~
**3-1. エラー箇所の特定 [#keeb995a]
~ビルドエラーが発生すると、コンソールウィンドウにその概要が表示されますが、エラーメッセージ部分をダブルクリックすると、該当するクラスウィンドウと命令ブロックを前面に表示し、プロパティウィンドウにそのブロックの設定を表示します。
~
#ref(http://www.vstone.co.jp/sotamanual/sotamanual_pict/vstonemagic/image176.png,100%)
 
~
~また、エラーの原因がクラス内ではなくワークスペース自体の設定にある場合は、主にsrc\main\main.javaと言うクラス(プログラムが自動生成するクラス)に対してエラーが表示されます。この場合、メインメソッドの設定(関数名や引数の設定)を見直してください。
~
#ref(http://www.vstone.co.jp/sotamanual/sotamanual_pict/vstonemagic/image177.png,100%)
 
~
~
~
~
~
**3-2. エラーメッセージ例と対処 [#wf57cf08]
~主に発生するエラーメッセージと、想定される問題の原因・対処について列挙します。ビルドエラーが発生したら、該当するブロックの種類に応じてこれらの問題をご確認ください。
~
 エラー:変数varはすでにメソッド mul(int)で定義されています

+変数宣言ブロックの場合、既に同じ名前の変数が宣言されている可能性があります。変数名が重複しないようにnameを変更してください。
+forブロックの中に別のforブロックを入れている場合、カウンタとして宣言する変数(初期設定では「i」)が重複することでエラーが発生します。どちらかのforブロックのcounter内の「name」を、どれとも重複しない別の変数名に設定してください。

~
~
 エラー:式の開始が不正です
+ 演算ブロックでleftやrightの設定をし忘れる(空白状態)と発生します。left・rightの設定を行ってください。
+ メソッド呼び出しブロックで、引数が必要なメソッドに対して引数の設定を忘れると発生します。正しい引数を設定してください。
+ メソッド呼び出しブロックで、enableGetReturnValueをtrueにしているが、戻り値の受取先の変数が設定されていないに場合に発生します。recvVariableで正しい戻り値の受取先を設定してください。
+ src\main\main.javaに対してのエラーの場合、メインメソッドの引数の設定に問題がある可能性があります。エクスプローラからワークスペースをクリックしてプロパティウィンドウに設定を表示し、メインメソッドのargmunetの設定を見直すか(引数の設定し忘れが無いか)、また、再度メインメソッドを設定し直してください。

~
~
 エラー:不適合な型:???を???に変換できません
+ 演算ブロックでleftとrightの型が異なると発生します。特にleftの設定を変更した後にrightの設定をし忘れることで発生します。leftの変数に応じた正しい値をrightに設定してください。

~
~
 エラー:
  不適合な型:予期しない戻り値
+ 型がvoidのメソッドブロックで、returnブロックによって戻り値を設定した場合に発生します。型がvoidのメソッドは戻り値を設定できないため、returnブロックで戻り値を設定しないで下さい。

~
~
 エラー:return文が指定されていません
+ 型がvoid以外のメソッドブロックで、returnブロックが入っておらず戻り値が不明な場合に発生します。型がvoid以外のメソッドは戻り値を設定する必要があるため、必ずreturnブロックで戻り値を設定して下さい。

~
~
 エラー:変数???は初期化されていない可能性があります
+ 宣言した変数に何も数値が代入されずに中身が参照される場合に発生します。変数を宣言したら、基本的に初期化を行うようにしてください。

~
~
 エラー:
  不適合な型:voidを???に変換できません
+ メソッドブロックの型をvoidに変更したが、そのメソッドの呼び出しブロックで戻り値を受け取る設定になっている場合に発生します。メソッドをvoid型に変更したら戻り値が発生しなくなるため、呼び出し側のブロックのenableGetReturnValueをfalseにしてください。

~
~

~
 エラー:
  例外が発生しました: java.lang.UnsatisfiedLinkError ~ java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path
  例外が発生しました: java.lang.UnsatisfiedLinkError ~ 
                      java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path
+ Sota ver1.2.14以降で追加されたOpenCVの機能が、実行時のオプション設定が不足しているため利用できない状態です。エクスプローラの根元の項目(ワークスペース名)をクリックし、プロパティウインドウより「execOption」の設定を開き、「-Djava.library.path=/usr/local/share/OpenCV/java/」という設定が存在しない場合は追加してください。
~
~
~
[[目次>MenuBar]]  [[次のページへ>>>../仮想ロボットによるシミュレーション]]