Eccezione irreversibile: la string non può essere lanciata a Spannable

La mia applicazione funziona notevolmente, ad exception di alcuni dispositivi. Su uno di questi dispositivi, ottengo un'EASIONE FALLA in una delle mie attività. L'errore è java.lang.ClassCastException: java.lang.String non può essere lanciato in android.text.Spannable … … a android.widget.TextView.setEnabled (TextView.java:1432)

STACK TRACE

  • Imansible recuperare la chiave
  • Android CountDownTimer mostra 1 per due secondi
  • graduale finito con valore di output non zero
  • Texture non applicabile alla mesh - OpenGL
  • HttpClient non riesce a mancare la stretta di mano in Android 5.0 Lollipop
  • Viste andate dopo aver cambiato app per utilizzare AppCompat
  • 05-02 09:18:19.917: E/AndroidRuntime(20587): FATAL EXCEPTION: main 05-02 09:18:19.917: E/AndroidRuntime(20587): java.lang.ClassCastException: java.lang.String cannot be cast to android.text.Spannable 05-02 09:18:19.917: E/AndroidRuntime(20587): at android.widget.TextView.setEnabled(TextView.java:1432) 05-02 09:18:19.917: E/AndroidRuntime(20587): at com.myapp.android.menu.LoginFragment.checkIfAnyFieldIsEmpty(LoginFragment.java:512) 05-02 09:18:19.917: E/AndroidRuntime(20587): at com.myapp.android.menu.LoginFragment.onCreateView(LoginFragment.java:183) 05-02 09:18:19.917: E/AndroidRuntime(20587): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460) 05-02 09:18:19.917: E/AndroidRuntime(20587): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911) 05-02 09:18:19.917: E/AndroidRuntime(20587): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088) 05-02 09:18:19.917: E/AndroidRuntime(20587): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 05-02 09:18:19.917: E/AndroidRuntime(20587): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444) 05-02 09:18:19.917: E/AndroidRuntime(20587): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429) 05-02 09:18:19.917: E/AndroidRuntime(20587): at android.os.Handler.handleCallback(Handler.java:615) 05-02 09:18:19.917: E/AndroidRuntime(20587): at android.os.Handler.dispatchMessage(Handler.java:92) 05-02 09:18:19.917: E/AndroidRuntime(20587): at android.os.Looper.loop(Looper.java:137) 05-02 09:18:19.917: E/AndroidRuntime(20587): at android.app.ActivityThread.main(ActivityThread.java:4962) 05-02 09:18:19.917: E/AndroidRuntime(20587): at java.lang.reflect.Method.invokeNative(Native Method) 05-02 09:18:19.917: E/AndroidRuntime(20587): at java.lang.reflect.Method.invoke(Method.java:511) 05-02 09:18:19.917: E/AndroidRuntime(20587): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004) 05-02 09:18:19.917: E/AndroidRuntime(20587): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 05-02 09:18:19.917: E/AndroidRuntime(20587): at dalvik.system.NativeStart.main(Native Method) 

    Ecco i frammenti di codice che circondano l'errore.

    CODICE DI LAYOUT XML

     <com.myapp.android.view.StyledButton android:id="@+id/login_sign_in" style="@style/button_blue" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/state_list_login" android:textColor="@color/white" android:imeOptions="actionDone" android:padding="10dp" android:text="@string/sign_in" /> 

    CODICE CUSTOM PULSANTE JAVA

     public class StyledButton extends Button { //variables private final String BOLD = "fonts/arial.ttf"; private final String NORMAL = "fonts/arial_bold.ttf"; private String mCustomFont = null; /** * Constructor * @param context */ public StyledButton(Context context) { super(context); } /** * Constructor * @param context * @param attrs */ public StyledButton(Context context, AttributeSet attrs) { super(context, attrs); setCustomAttributes(attrs); } /** * Set custom attributes * @param attrs */ private void setCustomAttributes(AttributeSet attrs) { TypedArray a=getContext().obtainStyledAttributes(attrs,R.styleable.StyledTextView); mCustomFont = a.getString(R.styleable.StyledTextView_fontAsset); if(mCustomFont != null) { if(!isInEditMode()) { CustomFontManager fontManager = CustomFontManager.getInstance(); super.setTypeface(fontManager.getFont(getContext().getAssets(), mCustomFont)); } } a.recycle(); } /** * Set type face */ public void setTypeface(Typeface tf, int style) { CustomFontManager fontManager = CustomFontManager.getInstance(); if(isInEditMode()) { super.setTypeface(tf,style); return; } if(mCustomFont!=null) { super.setTypeface(fontManager.getFont(getContext().getAssets(), mCustomFont)); return; } switch (style) { case Typeface.NORMAL: super.setTypeface(fontManager.getFont(getContext().getAssets(), NORMAL)); break; case Typeface.BOLD: super.setTypeface(fontManager.getFont(getContext().getAssets(), BOLD)); break; default: super.setTypeface(fontManager.getFont(getContext().getAssets(), NORMAL)); break; } } 

    }

    CODICE JAVA CAUSA ERRORE

      private StyledButton mSignIn; public void checkIfAnyFieldIsEmpty() { if (mEmailEmpty || mPasswordEmpty) { mSignIn.setEnabled(false); } else { mSignIn.setEnabled(true); } } 

    La row del codice mSignIn.setEnabled (falso) sta causando l'errore. Se lo faccio a commentare o semplicemente sostituirlo in modo che entrambi se e altro leggono mSignIn.setEnabled (vero) l'applicazione funziona bene.

    Ancora. Il codice come funziona bene sulla maggior parte dei dispositivi.

  • android.view.WindowLeaked exception
  • Verifica se i dati di background ei dati di pacchetto sono abilitati o less
  • Pulsante per tornare a MainActivity
  • Come ridurre dynamicmente la dimensione WebView in base al suo contenuto?
  • Come creare una notifica di promemory
  • React Native: l'objective con la string hash 'android-X' non è stato trovato
  • 3 Solutions collect form web for “Eccezione irreversibile: la string non può essere lanciata a Spannable”

    Hai fatto il tuo button di stile come spannable? Ad esempio, TextView dovrebbe essere così

    TextView.setText ("Hai", TextView.BufferType.SPANNABLE);

    Questo può essere un problema ma … assicurarsi che il text nel TextView che si sta tentando di impostare su Span non sia impostato come "" . Per alcune ragioni le stringhe vuote non sono spannable.

    sembra che stessi chiamando android: imeOptions = "actionDone" nel file di layout xml. ho rimosso quello e non si è arrestato più.

    perché?

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.