Приложение перестает работать до запуска, без исключений (устройство adb) - PullRequest
0 голосов
/ 24 октября 2019

Я написал код для простого «калькулятора» на Android с Android Studio |Котлин. у него есть несколько методов, таких как плюс, минус, див, мульт. когда я пытаюсь собрать приложение (на виртуальной машине или даже на устройстве ADB), нет никаких исключений или ошибок. вместо этого, когда я хочу запустить приложение и проверить его, приложение немедленно перестает работать и его убивают. Я много пробовал гуглить, но ничего не появилось.

  1. Я уже пробовал другие устройства, другие виртуальные машины с разными образами.
  2. Создание новых проектов

Это MainActivity.kt

    private var etFirstnumber: EditText? = null
    private var etSecondnumber: EditText? = null
    private var answer: TextView? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        etFirstnumber = findViewById<EditText>(R.id.et_first_number)
        etSecondnumber = findViewById<EditText>(R.id.et_sec_number)
        answer = findViewById<TextView>(R.id.txt_answr)

        val btn_plus = findViewById<Button>(R.id.btn_plus)
        val btn_minus = findViewById<Button>(R.id.btn_minus)
        val btn_div = findViewById<Button>(R.id.btn_div)
        val btn_mult = findViewById<Button>(R.id.btn_mult)
        val btn_quart = findViewById<Button>(R.id.btn_quart)
        val btn_root = findViewById<Button>(R.id.btn_root)

        btn_plus.setOnClickListener(){
            plus()
        }

        btn_minus.setOnClickListener(){
            minus()
        }

        btn_div.setOnClickListener(){
            div()
        }

        btn_mult.setOnClickListener(){
            mult()
        }
    }

    val a = etFirstnumber!!.text.toString().toInt()
    val b = etSecondnumber!!.text.toString().toInt()

    private fun plus(){
        val plus = a + b
        answer!!.text = plus.toString()
    }

    private fun minus(){
        val minus = a - b
        answer!!.text = minus.toString()
    }

    private fun div(){
        val div = a / b
        answer!!.text = div.toString()
    }

    private fun mult(){
        val mult = a * b
        answer!!.text = mult.toString()
    }

}

Activity_main.xml

<EditText
    android:id="@+id/et_sec_number"
    android:layout_width="153dp"
    android:layout_height="43dp"
    android:layout_marginStart="40dp"
    android:ems="10"
    android:hint="@string/et_sec_number"
    android:importantForAutofill="no"
    android:inputType="number"
    android:text="@string/et_sec_number"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toEndOf="@+id/et_first_number"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.283" />

<EditText
    android:id="@+id/et_first_number"
    android:layout_width="153dp"
    android:layout_height="43dp"
    android:ems="10"
    android:hint="@string/et_first_number"
    android:importantForAutofill="no"
    android:inputType="number"
    android:text="@string/et_first_number"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.116"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.283" />

<Button
    android:id="@+id/btn_minus"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="90dp"
    android:hint="@string/btn_minus"
    android:text="@string/btn_minus"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.217"
    app:layout_constraintStart_toEndOf="@+id/btn_plus"
    app:layout_constraintTop_toBottomOf="@+id/et_sec_number"
    app:layout_constraintVertical_bias="0.0" />

<Button
    android:id="@+id/btn_plus"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="30dp"
    android:layout_marginTop="90dp"
    android:hint="@string/btn_plus"
    android:text="@string/btn_plus"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/et_first_number"
    app:layout_constraintVertical_bias="0.0" />

<Button
    android:id="@+id/btn_div"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="90dp"
    android:hint="@string/btn_div"
    android:text="@string/btn_div"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.826"
    app:layout_constraintStart_toEndOf="@+id/btn_plus"
    app:layout_constraintTop_toBottomOf="@+id/et_sec_number"
    app:layout_constraintVertical_bias="0.0" />

<Button
    android:id="@+id/btn_quart"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="@string/btn_quart"
    android:text="@string/btn_quart"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.219"
    app:layout_constraintStart_toEndOf="@+id/btn_mult"
    app:layout_constraintTop_toBottomOf="@+id/btn_minus"
    app:layout_constraintVertical_bias="0.143" />

<Button
    android:id="@+id/btn_mult"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="30dp"
    android:hint="@string/btn_mult"
    android:text="@string/btn_mult"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/btn_root"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/btn_plus"
    app:layout_constraintVertical_bias="0.143" />

<Button
    android:id="@+id/btn_root"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="260dp"
    android:hint="@string/btn_root"
    android:text="@string/btn_root"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.829"
    app:layout_constraintStart_toEndOf="@+id/btn_plus"
    app:layout_constraintTop_toBottomOf="@+id/btn_div"
    app:layout_constraintVertical_bias="0.936" />

<TextView
    android:id="@+id/txt_answr"
    android:layout_width="196dp"
    android:layout_height="27dp"
    android:hint="@string/txt_answr"
    android:text="@string/txt_answr"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.135" />

Strings.xml

<string name="app_name">BTUcalculatorTEST3</string>
<string name="et_first_number">Enter First Number</string>
<string name="et_sec_number">Enter Second Number</string>
<string name="btn_plus">Plus</string>
<string name="btn_minus">Minus</string>
<string name="btn_div">Divide</string>
<string name="btn_mult">Multiply</string>
<string name="btn_quart">Quart</string>
<string name="btn_root">Root</string>
<string name="txt_answr">The Answer Will Show Up Here</string>

Я загружу файл проекта на диск для более подробной информации .. https://drive.google.com/open?id=1DqA1sbYN0vTkNopRS0WNXQyLt1Zqk6fy

1 Ответ

0 голосов
/ 24 октября 2019

Вы объявляете эти две переменные:

val a = etFirstnumber!!.text.toString().toInt()
val b = etSecondnumber!!.text.toString().toInt()

вне метода onCreate, что вызовет NPE, поскольку они не были инициализированы с соответствующим представлением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...