.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
相关产品推荐
相关产品推荐

