前提・実現したいこと
Android超初心者です。
Javaを使ってある文字列を指定した文字数に達するまで繰り返し文字列を作るAndroidアプリを作ろうとしているのですが、結果を表示するアクテビティをIntentを使って開始するとアプリが動作を停止してしまいます。
発生している問題・エラーメッセージ
書いているときやビルド時のエラーメッセージは特に出ません。
追記:ADBのLogCatのErrorを表示すると
実行時に
Log
108-30 03:58:30.247 6374-6381/? E/zygote: Failed writing handshake bytes (-1 of 14): Broken pipe
「作成」ボタンクリック時に
Log
108-30 03:58:44.024 6374-6374/com.sample.stringloop E/AndroidRuntime: FATAL EXCEPTION: main 2 Process: com.sample.stringloop, PID: 6374 3 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sample.stringloop/com.sample.stringloop.DisplayResultActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x64 4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778) 5 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) 6 at android.app.ActivityThread.-wrap11(Unknown Source:0) 7 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) 8 at android.os.Handler.dispatchMessage(Handler.java:106) 9 at android.os.Looper.loop(Looper.java:164) 10 at android.app.ActivityThread.main(ActivityThread.java:6494) 11 at java.lang.reflect.Method.invoke(Native Method) 12 at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 13 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 14 Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x64 15 at android.content.res.Resources.getText(Resources.java:339) 16 at android.widget.TextView.setText(TextView.java:5496) 17 at com.sample.stringloop.DisplayResultActivity.onCreate(DisplayResultActivity.java:36) 18 at android.app.Activity.performCreate(Activity.java:7009) 19 at android.app.Activity.performCreate(Activity.java:7000) 20 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214) 21 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731) 22 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) 23 at android.app.ActivityThread.-wrap11(Unknown Source:0) 24 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) 25 at android.os.Handler.dispatchMessage(Handler.java:106) 26 at android.os.Looper.loop(Looper.java:164) 27 at android.app.ActivityThread.main(ActivityThread.java:6494) 28 at java.lang.reflect.Method.invoke(Native Method) 29 at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 30 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 31
というエラーログが出ました。(無知で本当に申し訳ございません それでも意味が分からないのでご協力お願い致します。)
該当のソースコード
どのコードに問題があるのかわからないので、必要のないコードもあるかもしれません、申し訳ございません。
- MainActivity.java
Java
1package com.sample.stringloop; 2 3import android.content.Intent; 4import android.support.v7.app.AppCompatActivity; 5import android.os.Bundle; 6import android.view.View; 7import android.widget.CheckBox; 8import android.widget.EditText; 9public class MainActivity extends AppCompatActivity{ 10 public static final String EXTRA_MESSAGE = "com.sample.stringloop.MESSAGE1"; 11 public static final String EXTRA_MESSAGE3 = "com.sample.stringloop.MESSAGE3"; 12 public static final String EXTRA_BOOLEAN = "com.sample.stringloop.BOOLEAN"; 13 14 @Override 15 protected void onCreate(Bundle savedInstanceState) { 16 super.onCreate(savedInstanceState); 17 setContentView(R.layout.activity_main); 18 } 19 20 /*作成ボタンを押したときの挙動*/ 21 public void sendMessage(View view){ 22 Intent intent = new Intent(this,DisplayResultActivity.class); 23 EditText editText = (EditText) findViewById(R.id.editText); 24 EditText editText3 = (EditText) findViewById(R.id.editText3); 25 CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox); 26 String mojiretsu = editText.getText().toString(); 27 int mojisuu = Integer.parseInt(editText3.getText().toString()); 28 boolean kaigyo = checkBox.isChecked(); 29 intent.putExtra(EXTRA_MESSAGE, mojiretsu); 30 intent.putExtra(EXTRA_MESSAGE3, mojisuu); 31 intent.putExtra(EXTRA_BOOLEAN, kaigyo); 32 startActivity(intent); 33 } 34}
2.DisplayResultActivity.java
Java
1package com.sample.stringloop; 2 3import android.content.Intent; 4import android.support.v7.app.AppCompatActivity; 5import android.os.Bundle; 6import android.widget.TextView; 7 8public class DisplayResultActivity extends AppCompatActivity { 9 10 @Override 11 protected void onCreate(Bundle savedInstanceState) { 12 super.onCreate(savedInstanceState); 13 setContentView(R.layout.activity_display_result); 14 15 /* 最初にIntentを取得する*/ 16 Intent intent = getIntent(); 17 String mojiretsu = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); 18 int mojisuu = intent.getIntExtra(MainActivity.EXTRA_MESSAGE3,0); 19 boolean kaigyo = intent.getBooleanExtra(MainActivity.EXTRA_BOOLEAN, false); 20 int kaigyoi = kaigyo ? 1 : 0; 21 22 /*繰り返し文字列を作成*/ 23 StringBuilder sb = new StringBuilder(); 24 while(sb.length() + mojiretsu.length() + kaigyoi <= mojisuu){ 25 sb.append(mojiretsu); 26 if(kaigyo){ 27 sb.append(mojiretsu); 28 } 29 } 30 31 /*表示*/ 32 TextView textView3 = findViewById(R.id.textView3); 33 TextView textView4 = findViewById(R.id.textView4); 34 TextView editText4 = findViewById(R.id.editText4); 35 textView3.setText(mojiretsu); 36 textView4.setText(mojisuu); 37 editText4.setText(new String(sb)); 38 } 39}
試したこと
インターネットで調べてみると、このような事態になっている方は何人かいらっしゃるようでしたが、初めてAndroidでアプリを作る私にはよく理解できませんでした。
補足情報(FW/ツールのバージョンなど)
製作環境はWindows版のAndroid Studio(ターゲットはAndroid4.4)、実行環境はNexus5X(Android8.1)のADBとGalaxyS8(Android8.0)の実機です。
回答3件
あなたの回答
tips
プレビュー