ClassCastException仅在一台设备上

时间:2018-10-23 14:50:14

标签: android spannablestring spannable

在Crashlytics之后的问题中,我可以看到成千上万的用户仅在1台设备(SHARP 507SH Android 8.1.0)上看到这种情况,为什么会这样?

Fatal Exception: java.lang.ClassCastException: java.lang.String cannot be cast to android.text.Spannable
       at com.myapp.MyDialog$4$5.onDismiss(SourceFile:252)
       at android.app.Dialog$ListenersHandler.handleMessage(Dialog.java:1361)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6518)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)


@Override
public void onDismiss(final DialogInterface dialog) {
  // remove clickable text listener
  final TextView link = dialogView.findViewById(R.id.mydialog_link);
  Spannable spannable = (Spannable) link.getText();
}

这怎么可能发生?它可以在我测试过的所有其他设备上使用。

1 个答案:

答案 0 :(得分:0)

  

java.lang.String无法转换为android.text.Spannable

使用:

SpannableStringBuilder sb = new SpannableStringBuilder(your_string);