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

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

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

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

Q&A

解決済

1回答

1141閲覧

android studioのエラーについて

Ssanswer

総合スコア11

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

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

Android Emulator

Android EmulatorはアンドロイドのOSで起動しているアンドロイドのデバイスの機能をシミュレートするソフトウェアです。Emulatorは開発者に複数の違う設定を持ったデバイスを必要とすることなくアプリケーションを開発しテストすることが可能になります。

0グッド

1クリップ

投稿2020/10/02 07:54

[質問したい内容]
android studioでスロットゲームの作成をしているのですが
ビンゴが発生した時の絵を判定したいのですが
下記のソースコードだとエラーが出て
ログキャットを見て、調べてみても原因が分かりませんでした。
詳しい方がいれば解説付きでご教授お願いします。

[ソースコード]
(importなどは一部省力して記載しています)

java

1package sample.example.droidslot4; 2 3import java.util.Random; 4 5public class DroidSlotActivity extends AppCompatActivity { 6 7 int droidSide1 = -1; 8 int droidSide2 = -1; 9 int droidSide3 = -1; 10 int droidSide4 = -1; 11 int droidSide5 = -1; 12 int droidSide6 = -1; 13 int droidSide7 = -1; 14 int droidSide8 = -1; 15 int droidSide9 = -1; 16 int cnt = 0; 17 Button retryButton; 18 19 @Override 20 protected void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 setContentView(R.layout.activity_droid_slot); 23 24 final ImageView droidImage1 = (ImageView) this.findViewById(R.id.droidimageid1); 25 final ImageView droidImage2 = (ImageView) this.findViewById(R.id.droidimageid2); 26 final ImageView droidImage3 = (ImageView) this.findViewById(R.id.droidimageid3); 27 final ImageView droidImage4 = (ImageView) this.findViewById(R.id.droidimageid4); 28 final ImageView droidImage5 = (ImageView) this.findViewById(R.id.droidimageid5); 29 final ImageView droidImage6 = (ImageView) this.findViewById(R.id.droidimageid6); 30 final ImageView droidImage7 = (ImageView) this.findViewById(R.id.droidimageid7); 31 final ImageView droidImage8 = (ImageView) this.findViewById(R.id.droidimageid8); 32 final ImageView droidImage9 = (ImageView) this.findViewById(R.id.droidimageid9); 33 34 final TextView chip = (TextView) this.findViewById(R.id.chip); 35 final TextView bet = (TextView) this.findViewById(R.id.bet); 36 37 final Random r = new Random(); 38 39 final Button b1 = (Button) this.findViewById(R.id.slotbutton1); 40 final Button b2 = (Button) this.findViewById(R.id.slotbutton2); 41 final Button b3 = (Button) this.findViewById(R.id.slotbutton3); 42 retryButton = (Button) this.findViewById(R.id.retrybutton); 43 retryButton.setVisibility(View.INVISIBLE); 44 45 b1.setOnClickListener(new View.OnClickListener() { 46 @Override 47 public void onClick(View v) { 48 droidSide1 = r.nextInt(8); //左の縦1列の設定 123 49 droidSide4 = r.nextInt(8); //456 50 droidSide7 = r.nextInt(8); //789 51 52 droidImage1.setImageResource(getID(droidSide1)); 53 droidImage4.setImageResource(getID(droidSide4)); 54 droidImage7.setImageResource(getID(droidSide7)); 55 56 b1.setEnabled(false); 57 if(b1.isEnabled() == false && b2.isEnabled() == false && b3.isEnabled() == false) { 58 judge(); 59 } 60 } 61 }); 62 63//以下b2,b3同様 64 65 private void judge() { 66 int BINGO[][]; 67 int chara[]; 68 int flag = -1; 69 int j = 0; 70 int point = 1; 71 BINGO = new int[3][3]; //3×3の9つのパネルに画像を配置(ランダム) 72 BINGO[0][0] = droidSide1; 73 BINGO[0][1] = droidSide2; 74 BINGO[0][2] = droidSide3; 75 BINGO[1][0] = droidSide4; 76 BINGO[1][1] = droidSide5; 77 BINGO[1][2] = droidSide6; 78 BINGO[2][0] = droidSide7; 79 BINGO[2][1] = droidSide8; 80 BINGO[2][2] = droidSide9; 81 chara = new int[8]; 82 83 for(int i = 0; i < chara.length; i++) { 84 chara[i] = getID(j); //getIDメソッドを呼び出してcharaの配列に0から7の画像を代入 85 j++; 86 } 87 88 //x = 横 89 //y = 縦 90 91 for(int x = 0; x < BINGO.length; x++) { //縦を見たい 92 for (int y = 0; y < BINGO.length; y++) { 93 if(BINGO[y][x] != BINGO[y+1][x]) { 94 break; 95 }else if(flag >= BINGO.length - 2) { 96 cnt++; 97 if(BINGO[y+1][x] == chara[0]) { 98 point *= 50; 99 }else if(BINGO[y+1][x] == chara[1]) { 100 point *= 1000; 101 }else if(BINGO[y+1][x] == chara[2]) { 102 point *= 500; 103 }else if(BINGO[y+1][x] == chara[3]) { 104 point *= 10; 105 }else if(BINGO[y+1][x] == chara[4]) { 106 point *= 30; 107 }else if(BINGO[y+1][x] == chara[5]) { 108 point *= 25; 109 }else if(BINGO[y+1][x] == chara[6]) { 110 point *= 20; 111 }else if(BINGO[y+1][x] == chara[7]) { 112 point *= 100; 113 } 114 break; 115 }else{ 116 flag = y+1; 117 } 118 } 119 flag = -1; 120 } 121 122//横も同様 123 124 if(droidSide1 == droidSide5 && droidSide1 == droidSide9 && droidSide1 != -1 && droidSide5 != -1 && droidSide9 != -1){ 125 cnt++; 126 if(droidSide1 == chara[0]) { 127 point *=50; 128 }else if(droidSide1 == chara[1]) { 129 point *= 1000; 130 }else if(droidSide1 == chara[2]) { 131 point *= 500; 132 }else if(droidSide1 == chara[3]) { 133 point *= 10; 134 }else if(droidSide1 == chara[4]) { 135 point *= 30; 136 }else if(droidSide1 == chara[5]) { 137 point *= 25; 138 }else if(droidSide1 == chara[6]) { 139 point *= 20; 140 }else if(droidSide1 == chara[7]) { 141 point *= 100; 142 } 143 } 144 if(droidSide3 == droidSide5 && droidSide3 == droidSide7 && droidSide3 != -1 && droidSide5 != -1 && droidSide7 != -1) { 145 cnt++; 146 if(droidSide3 == chara[0]) { 147 point *= 50; 148 }else if(droidSide3 == chara[1]) { 149 point *= 1000; 150 }else if(droidSide3 == chara[2]) { 151 point *= 500; 152 }else if(droidSide3 == chara[3]) { 153 point *= 10; 154 }else if(droidSide3 == chara[4]) { 155 point *= 30; 156 }else if(droidSide3 == chara[5]) { 157 point *= 25; 158 }else if(droidSide3 == chara[6]) { 159 point *= 20; 160 }else if(droidSide3 == chara[7]) { 161 point *= 100; 162 } 163 } 164 Toast t = Toast.makeText(getApplicationContext(),cnt +"BINGO!",Toast.LENGTH_SHORT); 165 t.setGravity(Gravity.CENTER,0,500); 166 t.show(); 167 168 Toast z = Toast.makeText(getApplicationContext(),point,Toast.LENGTH_SHORT); 169 z.setGravity(Gravity.CENTER,0,550); 170 z.show(); 171 cnt = 0; 172 retryButton.setVisibility(View.VISIBLE); 173 } 174 175 private int getID(int nintendo) { 176 int id; 177 switch(nintendo) { 178 case 0: 179 id = R.drawable.kiler; 180 break; 181 case 1: 182 id = R.drawable.star; 183 break; 184 case 2: 185 id = R.drawable.starback; 186 break; 187 case 3: 188 id = R.drawable.banana; 189 break; 190 case 4: 191 id = R.drawable.bkoura; 192 break; 193 case 5: 194 id = R.drawable.rkoura; 195 break; 196 case 6: 197 id = R.drawable.gkoura; 198 break; 199 case 7: 200 id = R.drawable.mash; 201 break; 202 default: 203 id = R.drawable.black; 204 break; 205 } 206 return id; 207 } 208}

[エラー内容]
10-02 07:41:40.004 3304-3322/sample.example.droidslot4 E/Surface: getSlotFromBufferLocked: unknown buffer: 0xa2549820
10-02 07:41:41.853 3304-3304/sample.example.droidslot4 E/AndroidRuntime: FATAL EXCEPTION: main
Process: sample.example.droidslot4, PID: 3304
android.content.res.Resources$NotFoundException: String resource ID #0x1
at android.content.res.Resources.getText(Resources.java:312)
at android.widget.Toast.makeText(Toast.java:286)
at sample.example.droidslot4.DroidSlotActivity.judge(DroidSlotActivity.java:262)
at sample.example.droidslot4.DroidSlotActivity.access$100(DroidSlotActivity.java:15)
at sample.example.droidslot4.DroidSlotActivity$3.onClick(DroidSlotActivity.java:104)
at android.view.View.performClick(View.java:5198)
at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992)
at android.view.View$PerformClick.run(View.java:21147)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

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

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

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

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

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

guest

回答1

0

ベストアンサー

android.content.res.Resources$NotFoundException: String resource ID #0x1

という表示からStringのリソースIDに問題があることがわかり、

at sample.example.droidslot4.DroidSlotActivity.judge(DroidSlotActivity.java:262)

という行からDroidSlotActivity.javaの262行目のjudge()メソッド内に問題があることがわかります。

DroidSlotActivity.javaの262行目がどこなのか提示されたソースからはわかりませんが、恐らく以下の行に問題があると思われます。

java

1 Toast z = Toast.makeText(getApplicationContext(),point,Toast.LENGTH_SHORT);

pointはint型の変数ですが、makeText()の第2引数にint型の値を与えるとR.string.hogeようなリソースIDと見なして処理をしようとします。pointはただの数値ですから、これをこのまま実行すると存在しないリソースIDが与えられたものとしてアプリは落ちてしまうでしょう。

java

1 Toast z = Toast.makeText(getApplicationContext(),String.valueOf(point),Toast.LENGTH_SHORT);

などのようにしてpointを文字列変換することで改善できるのではないでしょうか。

投稿2020/10/02 08:17

keicha_hrs

総合スコア6768

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

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

Ssanswer

2020/10/02 08:42

回答ありがとうございます! 自分でも実施してみましたがToastの部分をInteger.toString(point)と記載することで解決できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問