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

.NET MAUI配置Android分享Intent触发空引用异常求助

问题分析与解决方案

从你描述的情况来看,这大概率是早期MAUI预览版的Shell组件Bug,结合配置逻辑的适配问题共同导致的:

核心原因

MauiAppCompatActivity是MAUI专为承载Shell框架的主Activity设计的,它内部会自动初始化Shell相关的跟踪器(比如ShellToolbarTracker)。而你的自定义ShareActivity作为非主Activity,并没有加载Shell的上下文环境,导致ShellToolbarTracker在尝试访问未初始化的Shell相关对象时抛出NullReferenceException。

修复方案

  • 改用原生AppCompatActivity:分享类Activity不需要依赖MAUI的Shell框架,直接继承Android原生的AppCompatActivity即可,完全绕过MAUI Shell的初始化逻辑,避免空引用问题。示例代码:

    [Activity(Label = "ShareActivity")]
    [IntentFilter(new[] { Intent.ActionSend }, Categories = new[] { Intent.CategoryDefault }, DataMimeType = "*/*")]
    public class ShareActivity : AppCompatActivity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            // 处理分享Intent的逻辑
            var intent = Intent;
            if (intent.Action == Intent.ActionSend)
            {
                string sharedText = intent.GetStringExtra(Intent.ExtraText);
                // 自定义分享内容处理逻辑
            }
            Finish(); // 处理完成后关闭Activity
        }
    }
    
  • 修正AndroidManifest配置:确保ShareActivity没有配置MainLauncher属性,也不要添加与Shell主Activity重复的Intent Filter,只保留分享相关的配置项。

  • 升级MAUI版本(可选):2022年8月的预览版属于MAUI早期迭代版本,Shell组件存在不少未修复的边缘场景Bug。如果项目允许,升级到MAUI稳定版(如.NET 7及以上),这类非主Activity的Shell初始化问题已被官方修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:03:37