You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

三星Galaxy S21(Android 15)设备ISms$Stub$Proxy.sendTextForSubscriber空指针崩溃求助

三星Galaxy S21(Android 15)设备ISms$Stub$Proxy.sendTextForSubscriber空指针崩溃求助

我最近碰到个特别闹心的问题:我的App在**三星Galaxy S21(Android 15)**上会莫名崩溃,但同样是Android 15系统的Galaxy S23、S24完全没事,关键我手里没有S21设备,根本没法复现排查,急死人了!

目前拿到的崩溃异常信息是:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
从崩溃栈来看,问题出在ISms$Stub$Proxy.sendTextForSubscriber方法调用上,大概的栈轨迹如下:

at com.android.internal.telephony.ISms$Stub$Proxy.sendTextForSubscriber(ISms.java:xxxx)
at com.yourpackage.YourSmsUtilClass.sendSms(YourSmsUtilClass.java:xx)

我自己琢磨了几个可能的排查方向,也想请教下有没有遇到过类似问题的朋友:

  • 先检查调用sendTextForSubscriber时传入的所有参数,尤其是String类型的(比如短信内容、收件人号码、订阅者ID相关的字符串),会不会在S21的Android 15环境下出现空值?比如某些系统返回的状态字段在S21上和新机型不一样,导致你组装参数时漏了值?
  • 考虑三星不同机型的系统定制差异,S21作为老旗舰,Android 15的适配逻辑可能和S23/S24有区别,比如ISms接口对参数的非空要求更严格?新机型允许为空的参数,S21的系统实现里却没做空值判断?
  • 如果你是用反射或者非公开API调用短信功能的话,大概率是三星在S21的Android 15上修改了ISms接口的内部实现,导致空指针。这种情况建议赶紧换成官方推荐的SmsManagerAPI来发短信,避开非公开接口的兼容性坑。
  • 实在没有设备的话,可以尝试联系有S21的用户或者同事,让他们帮忙开启详细日志,拿到完整的崩溃栈,精准定位是哪个参数为空。同时也可以在代码里给所有传入该方法的参数加一层非空校验,比如给可能为空的String设置默认空串,或者提前判断空值并做降级处理,先避免崩溃再说。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 14:02:58