2 z dong dong Z_dong_dong 于 2015.06.09 16:08 提问

String转换成可变参数的BUG,求大神帮忙解决一下,实在不知道如何解决。

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Object[]
at android.util.ArrayMap.allocArrays(ArrayMap.java:171)
at android.util.ArrayMap.put(ArrayMap.java:444)
at android.os.Bundle.putString(Bundle.java:519)
at com.customviews.dialogs.SimpleDialogFragment$SimpleDialogBuilder.setMessage(Unknown Source)
setPositiveButtonText
setOnNegativeButtonListenter
prepareArguments
at com.customviews.dialogs.BaseDialogBuilder.show(Unknown Source)
at com.customviews.dialogs.SimpleDialogFragment$SimpleDialogBuilder.setPositiveButtonText(Unknown Source)
setNeutralButtonText
setOnNeutralButtonListenter
show
at com.netschool.main.ui.DailyTrainingSettingsActivity.onWindowFocusChanged(Unknown Source)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onWindowFocusChanged(PhoneWindow.java:2878)
at android.view.View.dispatchWindowFocusChanged(View.java:8315)
at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:978)
at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3541)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5293)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)

下面是代码部分

```public SimpleDialogBuilder setMessage(int resourceId,
Object... formatArgs) {
mMessage = Html.fromHtml(String.format(Html
.toHtml(new SpannedString(mContext.getText(resourceId))),
formatArgs));
return this;
}


8个回答

edouardzyc
edouardzyc   2015.06.09 16:27

你传参数不要传String了, 自己new个String[]{str} str为你要传入的String 参数

Tiger_Zhao
Tiger_Zhao   Rxr 2015.06.09 16:37

应该不是可变参数的问题。
你把Html.toHtml(new SpannedString(mContext.getText(resourceId)))每一步都拆开,再加上调试输出,看到底在哪一步出的错。

Tiger_Zhao
Tiger_Zhao 回复Z_dong_dong: 那么把调用贴出来啊。
2 年多之前 回复
Z_dong_dong
Z_dong_dong 它和里面的代码没啥关系吧,主要是setMesseage时就报错,应该是参数问题吧?
2 年多之前 回复
u011133213
u011133213   2015.06.09 18:21

setMesseage(resourceId, new String[]{你的string变量})
类型转换失败就是找到那个错误的参数类型就行了!

qq_28900739
qq_28900739   2015.06.09 23:36

这是黑马安卓的吗 你学到哪里啦

beacon_2011
beacon_2011   Rxr 2015.06.10 15:41

你传的是个字符串,接值需要的是个数据,传参类型错了

Just_keep
Just_keep   2016.05.05 17:28

不知道你解决这个问题没有?我现在也遇到这个bug?

youlingcao
youlingcao   2016.08.19 16:25

这个bug是怎么出现的,怎么解决?我也遇到了

yiranxinshou
yiranxinshou   2016.12.29 19:41

AOSP issue 中也有这个问题,目前还没有解决
https://code.google.com/p/android/issues/detail?id=218944

Csdn user default icon
上传中...
上传图片
插入图片