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

MAUI配置Deeplink触发Java.lang.RuntimeException异常排查

.NET 9 MAUI Android Deeplink配置引发RuntimeException的原因及修复方案

问题根源

你遇到的Java.lang.RuntimeException是因为手动重复定义了MainActivity的节点。MAUI项目在构建过程中会自动生成包含MainActivity基础配置的AndroidManifest内容,你手动添加的节点和自动生成的节点完全重复,导致Android系统无法解析重复的组件注册信息,进而抛出启动异常。

具体冲突点

  • MAUI默认会通过MSBuild自动注册MainActivity,包含启动所需的LAUNCHER类型intent-filter以及基础的Activity属性配置。
  • 你手动在AndroidManifest.xml中完整定义了DeeplinkTest.MainActivity的节点,这就造成同一个Activity被两次注册,系统启动时无法识别正确的组件定义。

修复方案

方案1:修改AndroidManifest.xml(仅追加Deeplink配置)

不要重复定义完整的MainActivity节点,仅添加Deeplink对应的intent-filter即可,让MAUI自动处理基础的Activity注册:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <application android:allowBackup="true" 
                 android:icon="@mipmap/appicon" 
                 android:roundIcon="@mipmap/appicon_round" 
                 android:supportsRtl="true">
        <!-- 仅针对已自动注册的MainActivity添加Deeplink的intent-filter -->
        <activity android:name="DeeplinkTest.MainActivity" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="https" android:host="foo.com" android:pathPrefix="/bar/" />
            </intent-filter>
        </activity>
    </application>
</manifest>

方案2:使用MAUI特性配置(更推荐)

直接在MainActivity.cs中通过[IntentFilter]特性配置Deeplink,无需手动修改AndroidManifest.xml,完全避免配置冲突:

namespace DeeplinkTest;

[Activity(Exported = true)]
[IntentFilter(
    new[] { Android.Content.Intent.ActionView },
    Categories = new[] { Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable },
    DataScheme = "https",
    DataHost = "foo.com",
    DataPathPrefix = "/bar/"
)]
public class MainActivity : MauiAppCompatActivity
{
    // 保留原有代码即可
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 10:47:44