Исключение нулевого указателя студии Android на findViewById-int

Ошибка, которую я получаю:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View com.github.irshulx.Editor.findViewById(int)' on a null object reference at com.example.verma.inspire.PostActivity.onCreate(PostActivity.java:45) at android.app.Activity.performCreate(Activity.java:6975) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)*

файл PostActivity.java:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

import com.github.irshulx.models.EditorTextStyle;
import com.github.irshulx.Editor;

public class PostActivity extends AppCompatActivity {

    private Toolbar mToolbar;
    private Editor editor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_post);

        mToolbar = (Toolbar) findViewById(R.id.update_post_page_toolbar);
        setSupportActionBar(mToolbar);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setTitle("Update Post");

        editor = (Editor) editor.findViewById(R.id.editor); //error here
        setUpEditor();
    }

    ...
}

и макет XML:

<?xml version = "1.0" encoding = "utf-8"?>
<RelativeLayout
    xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:tools = "http://schemas.android.com/tools"
    xmlns:app = "http://schemas.android.com/apk/res-auto"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    tools:context = ".PostActivity">

    <include
        android:id = "@+id/update_post_page_toolbar"
        layout = "@layout/app_bar_layout" />

    <com.github.irshulx.Editor
        android:layout_width = "match_parent"
        android:id = "@+id/editor"
        app:render_type = "Editor"
        app:placeholder = "Start writing here..."
        android:paddingTop = "10dp"
        android:paddingLeft = "10dp"
        android:paddingRight = "10dp"
        android:layout_height = "wrap_content"
        android:paddingBottom = "100dp" />

</RelativeLayout>

сократил этот длинный пример кода до наименее необходимого.

Martin Zeitler 18.09.2018 22:51
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
659
1

Ответы 1

Вы пытаетесь найти редактор в неправильном представлении.

Попробуйте найти его в корневом представлении, например:

 editor = (Editor) findViewById(R.id.editor);

Это не раздутие, вы это находите. Он уже был надут. Хотя вы правильно поняли ошибку.

Gabe Sechan 18.09.2018 22:47

Вы правы, спасибо за разъяснения! Я изменяю ответ

viplezer 18.09.2018 22:48

пробовал то, что ты сказал .. все еще застрял editor = (Editor) findViewById (R.id.editor); // ошибка здесь Вызвано: java.lang.NullPointerException: попытка вызвать виртуальный метод void android.view.View.setOnClickListener (android.view.View $ OnCli‌ ckListener) для ссылки на нулевой объект в com.example.verma .inspire.PostActivity.setUpEditor (PostActivities.java:50) в com.example.verma.inspire.PostActivity.onCreate (PostActivity‌ .java: 46)

cyberpunk922 18.09.2018 22:56

Это другой вопрос. Мы не можем видеть другие ваши представления в вашем XML из функции setUpEditor (например, action_h1), но я подозреваю, что они находятся в вашем включенном макете. Если да, попробуйте найти их с помощью mToolbar.findViewById (...)

viplezer 18.09.2018 22:59

Другие вопросы по теме