java.lang.IllegalStateException不确定它是否与数据类型?

这是我在kotlin的第一个代码

活动的主要

<EditText android:id="@+id/monthlysalary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:ems="10" android:hint="Enter monthly salary" android:inputType="textPersonName" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.502" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/perday" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_marginTop="56dp" android:text="TextView" android:textSize="18sp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/monthlysalary" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="296dp" android:text="Show me :)" android:onClick="CaculateAge" android:background="@color/colorPrimary" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/perday" /> </android.support.constraint.ConstraintLayout> 

主要的活动是

包tenge.millionaire

class MainActivity:AppCompatActivity(){

 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) perday.setText(""); } public fun CaculateAge(view: View){ val salary: String = perday.text.toString(); val perday1 = salary.toInt()/30; perday.setText("Per day you earn $perday1") } } 

不知道这个函数有什么问题,或者是数据类型? 和错误是

致命例外:主进程:tenge.millionaire,PID:687 java.lang.IllegalStateException:无法执行android:onClick android的方法android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)在android .view.View.performClick(View.java:6213)at android.widget.TextView.performClick(TextView.java:11074)at android.view.View $ PerformClick.run(View.java:23645)at android.os。 Handler.handleCallback(Handler.java:751)在android.os.Handler.dispatchMessage(Handler.java:95)在android.os.Looper.loop(Looper.java:154)在android.app.ActivityThread.main(ActivityThread .java:6692)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1468)at com.android.internal.os.ZygoteInit java.lang.reflect.Method.invoke(Native Method) .main(ZygoteInit.java:1358)引发:java.lang.reflect.Method.invoke上的java.lang.reflect.InvocationTargetException(Native方法)在android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickList ener.onClick(AppCompatViewInflater.java:288)at android.view.View.performClick(View.java:6213)at android.widget.TextView.performClick(TextView.java:11074)at android.view.View $ PerformClick.run (View.java:23645)at android.os.Handler.handleCallback(Handler.java:751)at android.os.Handler.dispatchMessage(Handler.java:95)at android.os.Looper.loop(Looper.java: (android.app.ActivityThread.main(ActivityThread.java:6692)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java: 1468)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)引起:java.lang.NumberFormatException:对于输入字符串:“”at java.lang.Integer.parseInt(Integer.java:533 )在android.support上的java.lang.reflect.Method.invoke(Native Method)的tenge.millionaire.MainActivity.CaculateAge(MainActivity.kt:18)上的java.lang.Integer.parseInt(Integer.java:556)。 v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflat er.java:288)在android.view.View.performClick(View.java:6213)at android.widget.TextView.performClick(TextView.java:11074)at android.view.View $ PerformClick.run(View.java :23645)at android.os.Handler.handleCallback(Handler.java:751)at android.os.Handler.dispatchMessage(Handler.java:95)at android.os.Looper.loop(Looper.java:154)at android .app.ActivityThread.main(ActivityThread.java:6692)at com.android.internal.os.ZygoteInit java.lang.reflect.Method.invoke(Native Method)$ MethodAndArgsCaller.run(ZygoteInit.java:1468)at com .android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)

 perday.setText(""); 

然后,你正试图把这个值放在这里:

 val salary: String = perday.text.toString(); val perday1 = salary.toInt()/30; 

现在的薪水只是一个空的字符串,在那里崩溃。

  Caused by: java.lang.NumberFormatException: For input string: "" 

你需要真正拥有一个号码。 现在你正在说“”.toInt()导致NumberFormatException