2017-11-10 11 views
1

私は、仮想デバイス上で自分のアプリケーションをテストしましたが、私は次のエラーに直面した:アプリケーションがonclickのためにクラッシュしますか?

E/AndroidRuntime: FATAL EXCEPTION: main 
       Process: com.attendancekeeper.mohilkhare.attendancekeeper, PID: 4150 
       java.lang.IllegalStateException: Could not execute method for android:onClick 
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) 
        at android.view.View.performClick(View.java:5198) 
        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) 
       Caused by: java.lang.reflect.InvocationTargetException 
        at java.lang.reflect.Method.invoke(Native Method) 
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
        at android.view.View.performClick(View.java:5198)  
        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)  
       Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x1 
        at android.content.res.Resources.getText(Resources.java:312) 
        at android.widget.TextView.setText(TextView.java:4417) 
        at com.attendancekeeper.mohilkhare.attendancekeeper.MainActivity.displayMessageOnnumOfTotalDays(MainActivity.java:32) 
        at com.attendancekeeper.mohilkhare.attendancekeeper.MainActivity.present(MainActivity.java:25) 
        at java.lang.reflect.Method.invoke(Native Method)  
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)  
        at android.view.View.performClick(View.java:5198)  
        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)  

私はMainActivity.javaに以下を追加したときに、このエラーが来た:

  • インクリメント機能は、いくつかの整数を表示し、値をテキストビューIDを使用してターゲットにしたテキストビューに表示しました。

誰でもこの現象が起こっている理由を説明できますか?私はこれに新しいです。

+3

:android.content.res.Resources $ NotFoundException:なぜ、どうやら – Stultuske

+0

xmlファイルの関連するコードsnipletとJavaコード –

+0

@Mohilのkhareを追加してくださいだ文字列リソースのID番号の0x1の 、でしたボタンを初期化しましたか? –

答えて

2

これは、TextViewにint値を設定したためです.setText()は、文字列値またはStringのリソースID(infact int)のみを受け入れます。同様にあなたは以下の方法を使用することができるよう

displayMessageOnnumOfTotalDays.setText(String.valueOf(totalDays)); 

displayMessageOntv1.setText(String.valueOf(daysAttended)); 
+0

それは完璧に働いた、ありがとう!これとは別に、私がしなければならなかったすべては変更 'ます。private void displayMessageOnnumOfTotalDays(int型totalDays)' と 'ます。private void displayMessageOntv1(int型daysAttended)' へ 'ます。private void displayMessageOnnumOfTotalDays(文字列totalDays)' と ました'private void displayMessageOntv1(String daysAttended)' それぞれ! –

+0

@MohilKhareはあなたをお手伝いします。 – Munir

0

変更

displayMessageOnnumOfTotalDays.setText(totalDays); 

displayMessageOntv1.setText(daysAttended); 

によって引き起こさ
displayMessageOnnumOfTotalDays.setText(totalDays+""); 
displayMessageOntv1.setText(daysAttended+""); 
関連する問題