При нажатии на кнопку приложение закрывается

У меня приложение для заказа кофе, при нажатии на кнопки + или - происходит вылет, ошибки при этом ни какой нет, я начинаю изучать, поэтому прошу мне помочь.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout

    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingTop="16dp"
    android:paddingLeft="16dp"
    tools:context=".MainActivity">



    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"
        android:text="QUANTITY"
        android:paddingTop="16dp"
        android:paddingLeft="16dp"
        android:textAllCaps="true" />

    <Button
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_margin="8dp"
        android:backgroundTint="#AFACAC"
        android:onClick="increment"
        android:text="+"
        android:textColor="@color/black"
        android:textSize="25sp" />

    <TextView
        android:id="@+id/price_text_view"
        android:layout_below="@+id/price_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="0"
        android:textColor="#000000"
        android:paddingTop="16dp"
        android:paddingLeft="16dp"
        android:textSize="16sp" />

    <Button
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_margin="8dp"
        android:backgroundTint="#AFACAC"
        android:onClick="decrement"
        android:text="-"
        android:textColor="@color/black"
        android:textSize="25sp" />



    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"
        android:text="PRICE"
        android:paddingTop="16dp"
        android:paddingLeft="16dp"
        android:textAllCaps="true" />


    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:onClick="submitOrder"
        android:text="Order"
        android:paddingTop="16dp"
        android:paddingLeft="16dp"
        android:textAllCaps="true" />
</LinearLayout>

MainActivity.java:

Вот лог ошибок

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.justjava, PID: 4797
    java.lang.IllegalStateException: Could not execute method for android:onClick
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:390)
        at android.view.View.performClick(View.java:6294)
        at android.view.View$PerformClick.run(View.java:24770)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385)
        at android.view.View.performClick(View.java:6294) 
        at android.view.View$PerformClick.run(View.java:24770) 
        at android.os.Handler.handleCallback(Handler.java:790) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6494) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
        at com.example.justjava.MainActivity.display(MainActivity.java:51)
        at com.example.justjava.MainActivity.increment(MainActivity.java:35)
        at java.lang.reflect.Method.invoke(Native Method) 
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385) 
        at android.view.View.performClick(View.java:6294) 
        at android.view.View$PerformClick.run(View.java:24770) 
        at android.os.Handler.handleCallback(Handler.java:790) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6494) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 

Ответы (2 шт):

Автор решения: Archieq

Знаний у меня не больше чем у вас, но так как вы на этот вопрос вряд-ли получите ещё какие-то ответы, поэтому могу лишь предположить:

  1. Преобразуйте ваш number из типа int в String при помощи метода String.valueof(object); Выглядеть это будет примерно так: quantityTextView.setText(" " +(String.valueof(number));

Прошу обратить внимание на код который подсвечен желтым цветом у вас, скорее всего проблема в нём, не рекомендую игнорировать предупреждения компилятора так как они бывают очень полезны при выявлении ошибок, и наличие их в вашем коде уже говорит от том что он "не так хорош" как должен быть.

  1. Заметил в вашем коде разметки xml отсутствие айди у нужного TextView, но в коде Main Activity он подсвечивается как имеющийся, но это скорее всего ваша ошибка при копировании кода, но на всякий случай проверьте этот момент.

Надеюсь мои скудные знания хоть немного вам помогли.

→ Ссылка
Автор решения: Михаил

У тебя в логах все написано, смотри :

 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
    at com.example.justjava.MainActivity.display(MainActivity.java:51)
    at com.example.justjava.MainActivity.increment(MainActivity.java:35)

В методе display, 51 строчка класса MainActivity ты пытаешься вызвать метод setText() у объекта в котором null. Это значит что в 50 строчке, когда ты искал TextView c id == qantity_text_view - то такой view не нашлось и у тебя там null. Тебе надо в разметку добавить TextView с этим id (я предполагаю что надо в самую верхнею TextView твоей xml добавить android:id="@+id/qantity_text_view")

→ Ссылка