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

使用Intent分享链接导致应用崩溃问题排查求助

解决Intent分享链接时的NullPointerException崩溃问题

看起来你遇到的这个空指针崩溃,根源在于你分享的文本不是完整的URL格式!

问题原因

你传入的EXTRA_TEXT是"example.com",这类没有http://或https://协议前缀的字符串,会导致部分接收分享的应用(比如邮件、社交平台APP)在尝试将其解析为Uri对象时返回null。当这些应用后续调用这个null对象的writeToParcel方法时,就会触发你看到的java.lang.NullPointerException: Attempt to invoke virtual method 'void android.net.Uri.writeToParcel...异常。

修复方案

最直接的解决方法就是给链接补上完整的协议前缀,修改后的代码如下:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
// 补全HTTPS协议头,确保能被正确解析为Uri
intent.putExtra(Intent.EXTRA_TEXT, "https://example.com");
intent.putExtra(Intent.EXTRA_SUBJECT, "Check out this site!");
startActivity(Intent.createChooser(intent, "Share Using"));

额外优化建议

如果你的链接是动态生成的,可以添加一个简单的判断逻辑,自动为缺少协议头的链接补全前缀:

String shareUrl = "example.com";
if (!shareUrl.startsWith("http://") && !shareUrl.startsWith("https://")) {
    shareUrl = "https://" + shareUrl;
}
intent.putExtra(Intent.EXTRA_TEXT, shareUrl);

这样就能避免因为链接格式不规范导致的各类解析异常啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:17:27