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

Android WebView在Bitmap.getWidth()处触发NullPointerException求助

安卓WebView在三星S21(Android 13)上的空指针崩溃问题

加载应用内功能对应的WebView时触发崩溃,仅发生在Android 13系统的三星S21设备上,同版本系统的Google Pixel设备无异常。已尝试更新WebView,问题未解决。

崩溃日志:

FATAL EXCEPTION: main
Process: com.app.au, PID: 15769
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
at Ar.run(chromium-TrichromeWebViewGoogle6432.aab-stable-573519633:50)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loopOnce(Looper.java:186)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8757)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)

解决建议

  • 排查页面图片资源兼容性:检查WebView加载的页面中是否有加载失败的图片(比如WebP或特殊编码的PNG),这类资源在三星设备上可能无法正常解析导致Bitmap为null,建议替换为兼容性更好的格式。
  • 禁用WebView硬件加速:在对应Activity的AndroidManifest.xml中添加android:hardwareAccelerated="false",或在代码中设置webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null),部分三星设备的硬件加速与WebView图片渲染存在冲突。
  • 拦截图片加载并兜底:通过WebViewClient的shouldInterceptRequest方法手动处理图片加载,若加载失败则返回预设的占位图Bitmap,避免null值传入后续逻辑。
  • 排查WebView初始化配置:检查是否开启了三星设备不兼容的WebSettings选项(如setAllowFileAccess、setDomStorageEnabled等),逐步禁用这些选项定位问题。
  • 三星设备特殊适配:通过Build.MANUFACTURER判断设备品牌,针对三星设备单独调整WebView配置,比如修改默认User-Agent或调整缓存策略。

内容的提问来源于stack exchange,提问作者Dev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:27:10