Исключение Null Указатель на экземпляр переменной [duplicate]

Обновлено 2018

Убедитесь, что ваша таблица содержит класс table. Это потому, что таблицы Bootstrap 4 являются «opt-in» , поэтому класс table должен быть намеренно добавлен в таблицу.

http://codeply.com / go / zJLXypKZxL

Bootstrap 3.x также имел некоторый CSS для сброса ячеек таблицы, чтобы они не плавали ..

table td[class*=col-], table th[class*=col-] {
    position: static;
    display: table-cell;
    float: none;
}

t знать, почему это не так, это Bootstrap 4 alpha, но он может быть добавлен обратно в финальную версию. Добавление этого CSS поможет всем столбцам использовать ширины, установленные в thead ..

Bootstrap 4 Alpha 2 Demo


UPDATE ( начиная с Bootstrap 4.0.0)

Теперь, когда Bootstrap 4 является flexbox, ячейки таблицы не будут принимать правильную ширину при добавлении col-*. Обходным путем является использование класса d-inline-block в ячейках таблицы, чтобы предотвратить отображение по умолчанию: flex of columns.

Еще одна опция в BS4 - использовать классы utils для ширины ...


     
           25
           50
           25
     

Bootstrap 4 Alpha 6 Demo

Наконец, вы можете использовать d-flex в строках таблицы (tr), а классы сетки col-* на столбцы (th, td) ...

25% 25% 50%
.. .. ..

Bootstrap 4.0.0 (стабильный) Демонстрация

45
задан Igor Tyulkanov 14 December 2015 в 06:46
поделиться

2 ответа

Измените <view на <View, потому что view не находится в пустом представлении. Это для пользовательского представления, определенного через class attr, как показано ниже:

<view
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    class="com.your.package.YourCustomView" />

И вы получили

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference

из-за LayoutInflater пытается разобрать class attr:

LayoutInflater Исходный код

//...
View createViewFromTag(View parent, String name, Context context, AttributeSet attrs,
        boolean ignoreThemeAttr) {
    if (name.equals("view")) { // line 724
        name = attrs.getAttributeValue(null, "class"); // line 725
    }

    // Apply a theme wrapper, if allowed and one is specified.
    if (!ignoreThemeAttr) {
        final TypedArray ta = context.obtainStyledAttributes(attrs, ATTRS_THEME);
        final int themeResId = ta.getResourceId(0, 0);
        if (themeResId != 0) {
            context = new ContextThemeWrapper(context, themeResId);
        }
        ta.recycle();
    }

    if (name.equals(TAG_1995)) { // line 738
        // Let's party like it's 1995!
        return new BlinkLayout(context, attrs);
    }
//...
  • В строке 724 он проверяет, что ваш тэг view и получает true
  • Вкл. строка 725 пытается получить класс через class attr и получает null
  • В строке 738 он пытается проверить тэг blink и получает сбой

Кроме того, есть любопытная вещь, разработчики Android добавили пасхальное яйцо, вы можете попробовать:

<view
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    class="blink">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Some text" />
</view>
145
ответ дан Igor Tyulkanov 19 August 2018 в 15:16
поделиться
  • 1
    Большое вам спасибо, Игорь! Я не уверен, как я пропустил, что у меня не было заглавной буквы. – Mitchell Palermo 14 December 2015 в 22:09
  • 2
    Спасибо manh .. slvd моя проблема .. боролась часами – Beenal 12 March 2016 в 12:36
  • 3
    Удивительный ответ с таким подробным объяснением + бонус. Спасибо чувак – Umar Qureshi 14 June 2016 в 10:49
  • 4
    Это действительно опечатка, которую может сделать любой разработчик. Бог и хорошее подробное объяснение. – Ashay 23 October 2017 в 16:42
  • 5
    Это тоже решило мою проблему! какая глупая ошибка! благодаря! – Riddhi 10 May 2018 в 07:23

Через 2 дня я решил эту проблему использовать View вместо view

<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="#faf4f4"></View>
18
ответ дан saigopi 19 August 2018 в 15:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: