0

アプリをクラッシュさせ、これを logcat に書き込む際に問題が発生しました。

10-18 13:13:13.950: E/AndroidRuntime(748): 致命的な例外: メイン 10-18 13:13:13.950: E/AndroidRuntime(748): android.content.res.Resources$NotFoundException: 文字列リソース ID # 0x0 10-18 13:13:13.950: E/AndroidRuntime(748): android.content.res.Resources.getText(Resources.java:239) 10-18 13:13:13.950: E/AndroidRuntime(748): android.widget.TextView.setText(TextView.java:3844) 10-18 13:13:13.950: E/AndroidRuntime(748): com.example.lightalarmclock.AddBox.onClick(AddBox.java:89) 10- 18 13:13:13.950: E/AndroidRuntime(748): android.view.View.performClick(View.java:4240) 10-18 13:13:13.950: E/AndroidRuntime(748): android.view で。 View$PerformClick.run(View.java:17721) 10-18 13:13:13.950: E/AndroidRuntime(748): android.os.Handler.handleCallback(Handler.java:730) 10-18 13:13: 13.950: E/AndroidRuntime(748): android.os.Handler.dispatchMessage(Handler.java:92) 10-18 13:13:13.950: E/AndroidRuntime(748): android.os.Looper.loop(Looper.java:137) 10-18 13:13:13.950: E/AndroidRuntime(748): android.app.ActivityThread.main(ActivityThread.java:5103) 10-18 13:13:13.950: E/AndroidRuntime(748): java.lang.reflect.Method.invokeNative(Nativeメソッド) 10-18 13:13:13.950: E/AndroidRuntime(748): java.lang.reflect.Method.invoke(Method.java:525) 10-18 13:13:13.950: E/AndroidRuntime(748) : com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 10-18 13:13:13.950: E/AndroidRuntime(748): com.android.internal.os.ZygoteInit.main で(ZygoteInit.java:553) 10-18 13:13:13.950: E/AndroidRuntime(748): dalvik.system.NativeStart.main(ネイティブ メソッド) でandroid.os.Looper.loop(Looper.java:137) 10-18 13:13:13.950: E/AndroidRuntime(748): android.app.ActivityThread.main(ActivityThread.java:5103) 10-18 13 :13:13.950: E/AndroidRuntime(748): at java.lang.reflect.Method.invokeNative(Native Method) 10-18 13:13:13.950: E/AndroidRuntime(748): at java.lang.reflect.Method .invoke(Method.java:525) 10-18 13:13:13.950: E/AndroidRuntime(748): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) で 10-18 13 :13:13.950: E/AndroidRuntime(748): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 10-18 13:13:13.950: E/AndroidRuntime(748): dalvik で。 system.NativeStart.main(ネイティブメソッド)android.os.Looper.loop(Looper.java:137) 10-18 13:13:13.950: E/AndroidRuntime(748): android.app.ActivityThread.main(ActivityThread.java:5103) 10-18 13 :13:13.950: E/AndroidRuntime(748): at java.lang.reflect.Method.invokeNative(Native Method) 10-18 13:13:13.950: E/AndroidRuntime(748): at java.lang.reflect.Method .invoke(Method.java:525) 10-18 13:13:13.950: E/AndroidRuntime(748): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) で 10-18 13 :13:13.950: E/AndroidRuntime(748): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 10-18 13:13:13.950: E/AndroidRuntime(748): dalvik で。 system.NativeStart.main(ネイティブメソッド)E/AndroidRuntime(748): java.lang.reflect.Method.invokeNative(Native Method) 10-18 13:13:13.950: E/AndroidRuntime(748): java.lang.reflect.Method.invoke(Method. java:525) 10-18 13:13:13.950: E/AndroidRuntime(748): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 10-18 13:13:13.950: E/AndroidRuntime(748): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 10-18 13:13:13.950: E/AndroidRuntime(748): dalvik.system.NativeStart.main で(ネイティブメソッド)E/AndroidRuntime(748): java.lang.reflect.Method.invokeNative(Native Method) 10-18 13:13:13.950: E/AndroidRuntime(748): java.lang.reflect.Method.invoke(Method. java:525) 10-18 13:13:13.950: E/AndroidRuntime(748): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 10-18 13:13:13.950: E/AndroidRuntime(748): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 10-18 13:13:13.950: E/AndroidRuntime(748): dalvik.system.NativeStart.main で(ネイティブメソッド)com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 10-18 13:13:13.950: E/AndroidRuntime(748): dalvik.system.NativeStart.main(ネイティブ メソッド) でcom.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 10-18 13:13:13.950: E/AndroidRuntime(748): dalvik.system.NativeStart.main(ネイティブ メソッド) で

私のアプリは、ボタンを押して左から右に送信するアラームを追加するときに、Androidの目覚まし時計アプリ(4.3)のように、キーを押すとテキストを更新しています。

だから私は次のことを思いついた:

if (pos1 == 0) {
            TextView Pos1 = (TextView)findViewById(R.id.TextView05);
            Pos1.setText("1");
            pos1 = 1;
        } else {

            //Moving all positions for a one
            TextView Pos1 = (TextView)findViewById(R.id.TextView04);
            Pos1.setText(pos3);
            pos4 = pos3;
            TextView Pos2 = (TextView)findViewById(R.id.TextView03);
            Pos2.setText(pos2);
            pos3 = pos2;
            TextView Pos3 = (TextView)findViewById(R.id.TextView01);
            Pos3.setText(pos1);
            pos2 = pos1;

            //imputing 
            TextView Pos5 = (TextView)findViewById(R.id.TextView05);
            Pos5.setText("1");

            pos1 = 0;
        }

そして問題の原因となる部分は「else」文の // 全位置移動コメントでゲームがクラッシュする部分です。したがって、アプリ GUI で番号 1 を押すと、0 の代わりに右端に描画されます (この部分は機能します)。次に、もう一度 1 とその配偶者を押して、前の 1 を左に移動し、別の 1 を右端に追加しますが、これはクラッシュします。私のアプリ。

私はそれを修正してグーグルで検索しようとしましたが、理解できません。

4

3 に答える 3

0

値は文字列でなければならないため、setText メソッドに整数値を直接割り当てないでください。値が整数の場合、Android は ID (指定した整数) を持つリソース文字列の検索を開始します。

Pos1.setText(""+pos3);

また

Pos1.setText(Integer.toString(pos3));

于 2016-08-17T05:16:10.013 に答える
0

setText に文字列を提供する必要があります。そうしないと、Android は Resource で、指定した整数の ID を持つ文字列を検索します。だからあなたは変わらなければならない

Pos1.setText(pos3);

 Pos1.setText(String.valueOf(pos3));
于 2013-10-18T17:32:10.860 に答える
-1

あなたの pos3 、 pos2 は int id from として参照されていますR.string。それらをテキストに変換してからテキストを設定する必要があります

于 2013-10-18T17:30:43.387 に答える