java .lang.NullPointerException для кнопки в android - PullRequest
0 голосов
/ 30 января 2020

Раньше этот код работал нормально, но теперь я получаю исключение нулевого указателя на кнопку

    import kotlinx.android.synthetic.main.activity_splash.*

    override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_splash)
            button_splash_getting_started.setOnClickListener {
                val intent = Intent(this@SplashActivity, RegisterActivity::class.java)
                intent.putExtra("FROM_SPLASH_ACTIVITY",true)
                startActivity(intent)
            }
            textView_splash_already_have_account.setOnClickListener {
                val loginIntent = Intent(this@SplashActivity, LoginActivity::class.java)
                loginIntent.putExtra("FROM_SPLASH_ACTIVITY",true)
                startActivity(loginIntent)
            }
        }

error java .lang.NullPointerException: Попытка вызвать виртуальный метод void android .widget. Button.setOnClickListener (android .view.View $ OnClickListener) 'для нулевой ссылки на объект

, а здесь logcat

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.edubaba.howApp/com.test.ui.SplashActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
            at android.app.ActivityThread.-wrap11(Unknown Source:0)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
            at android.os.Handler.dispatchMessage(Handler.java:106)
            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.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
            at com.edubaba.howApp.ui.splash.SplashActivity.onCreate(SplashActivity.kt:35)
            at android.app.Activity.performCreate(Activity.java:7009)
            at android.app.Activity.performCreate(Activity.java:7000)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)

здесь xml файл

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_splash_root_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:tag="customsnackbar">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/activity_splash_constraintLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <ImageView
            android:id="@+id/imageView_splash_background"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:scaleType="centerCrop"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@drawable/how_background" />
    </androidx.constraintlayout.widget.ConstraintLayout>

    <TextView
        android:id="@+id/activity_splash_skip_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="32dp"
        android:padding="20dp"
        android:text="@string/skip"
        android:textColor="@color/white"
        android:textSize="18sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ProgressBar
        android:id="@+id/activity_splash_progress_bar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:theme="@style/progressBarWhite"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button_splash_getting_started"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginEnd="32dp"
        android:layout_marginBottom="16dp"
        android:background="@drawable/background_button_getting_started"
        android:text="@string/get_started"
        android:textColor="#ec975d"
        android:textSize="18sp"
        app:layout_constraintBottom_toTopOf="@+id/textView_splash_already_have_account"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        tools:layout_editor_absoluteY="798dp" />

    <TextView
        android:id="@+id/textView_splash_already_have_account"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="128dp"
        android:text="@string/already_signed"
        android:textColor="@color/white"
        android:translationZ="1dp"
        app:layout_constraintBottom_toBottomOf="@+id/activity_splash_constraintLayout"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

Кто-нибудь может сказать, что могло пойти не так?

Ответы [ 2 ]

1 голос
/ 30 января 2020

Этот идентификатор button_splash_getting_started Не существует на вашем Xml, поэтому вы получаете сообщение об ошибке.

Замените этот идентификатор button_splash_getting_started на button_splash_getting_started1.

Вот и все.

0 голосов
/ 30 января 2020

Я думаю, что нашел проблему. В методе onCreate () у вас есть:

setContentView(R.layout.activity_splash) 

Но ваш. xml файл имеет идентификатор:

android:id="@+id/activity_splash_root_layout"

Итак, я думаю, вам нужно заменить на setContentView() right id="". Например:

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