2016-01-26 3 views
3

Я использовал виджет коммутатора в своем приложении. когда я запускаю приложение на леденец, он отлично работает с ним. но когда я запускаю версию 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) 
+0

какая линия вызывает это исключение? пожалуйста, напишите полный журнал ошибок –

+0

его полный журнал .. он не отобразил определенную строку. вот почему я разместил здесь. – Riser

+0

Связанный: http://stackoverflow.com/questions/25419889/android-intellij-switch-nullpointerexception –

ответ

3

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

1

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

+0

Это не дает ответа на вопрос. Когда у вас будет достаточно [репутации] (https://stackoverflow.com/help/whats-reputation), вы сможете [прокомментировать любое сообщение] (https://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуют разъяснений у аськи) (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- я-делать-вместо этого). - [Из обзора] (/ review/low-quality-posts/17225946) – derape

+0

извините, я столкнулся с той же проблемой, но вызвал свойство «android: track», поэтому добавляю комментарий –

0

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

<item name="android:textOn"></item> 
<item name="android:textOff"></item>