Исключение нулевого указателя на виджете переключения в версии kitkat

Я использовал виджет переключения в своем приложении. когда я запускаю приложение на леденце, оно отлично с ним работает. но когда я запускаю версию kitkat, она вылетает.

xml-дизайн:

 <Switch
                android:id="@+id/act_edit_device_swtch"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:switchMinWidth="40sp"
                android:thumb="@null"
                android:track="@drawable/switchdb" />

switchdb.xml

<?xml version="1.0" encoding="UTF-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/onswitch" android:state_checked="true"/>
    <item android:drawable="@drawable/offswitch" android:state_checked="false"/>
    <item android:drawable="@drawable/offswitch"></item>

</selector>

ниже мой отчет о сбое:

java.lang.NullPointerException
       at android.widget.Switch.jumpDrawablesToCurrentState(Switch.java:825)
       at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5500)
       at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5500)
       at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5500)
       at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5500)
       at android.widget.FrameLayout.jumpDrawablesToCurrentState(FrameLayout.java:189)
      at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5500)
       at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5500)
       at android.widget.FrameLayout.jumpDrawablesToCurrentState(FrameLayout.java:189)
       at android.view.View.onAttachedToWindow(View.java:12146)
       at android.view.ViewGroup.onAttachedToWindow(ViewGroup.java:3499)
       at com.android.internal.policy.impl.PhoneWindow$DecorView.onAttachedToWindow(PhoneWindow.java:2659)
       at android.view.View.dispatchAttachedToWindow(View.java:12620)
       at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2460)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1236)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1019)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5725)

person Sagar Maiyad    schedule 26.01.2016    source источник
comment
какая строка вызывает это исключение? пожалуйста, выложите полный журнал ошибок   -  person kandroidj    schedule 26.01.2016
comment
его полный журнал ... он не отображал определенную строку. вот почему я разместил здесь.   -  person Sagar Maiyad    schedule 26.01.2016
comment
Связано: stackoverflow.com/questions/25419889/   -  person    schedule 26.01.2016
comment
@MsYvette Я пока не использую виджет переключения в java-файле. я только что положил в части дизайна.   -  person Sagar Maiyad    schedule 26.01.2016


Ответы (3)


Используйте android:thumb="@android:color/transparent" вместо @null

person Radu Ionescu    schedule 26.01.2016

Если не использовать свойство android:track, используйте android:track="@android:color/transparent" вместо @null

person Jones.Lee    schedule 04.09.2017
comment
Это не дает ответа на вопрос. Получив достаточную репутацию, вы сможете /comment">прокомментировать любой пост; вместо этого дайте ответы которые не требуют разъяснений от спрашивающего. – Из обзора - person DerApe; 04.09.2017
comment
извините, я столкнулся с той же проблемой, но вызванной свойством android:track, поэтому я добавляю комментарий - person Jones.Lee; 06.09.2017

Или как вариант загляните в свой стиль и проверьте не пусты ли textOn и textOff. Если да, то просто удалите их.

<item name="android:textOn"></item>
<item name="android:textOff"></item>
person oshurmamadov    schedule 06.03.2018