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

集成Intune SDK(含MSAL)的Android应用崩溃,报BrowserSelector空指针异常

解决Android Intune SDK(含MSAL)登录后崩溃问题

问题分析

崩溃栈指向BrowserSelector类的浏览器检测逻辑,核心原因是Android API 33(Android 13)收紧了应用包查询权限,Intune/MSAL SDK在尝试检测设备上的浏览器时,因缺少必要权限或适配不足触发异常,导致流程中断,无法收到ENROLLMENT_SUCCEEDED通知。

解决方案

1. 补充包查询权限到AndroidManifest.xml

API 33要求应用声明权限才能查询设备已安装应用,可选择以下两种方式:

  • 全局查询权限(快速解决):
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
    tools:ignore="QueryAllPackagesPermission" />
  • 针对性intent权限(更合规):
<queries>
    <intent>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="https" />
    </intent>
</queries>

2. 在MSAL配置中指定允许的浏览器

修改msal_config.json,通过browser_safelist固定SDK可使用的浏览器,避免自动检测所有浏览器:

{
    "client_id": "你的客户端ID",
    "authorization_user_agent": "DEFAULT",
    "redirect_uri": "msauth://你的包名/你的签名哈希",
    "browser_safelist": [
        {
            "browser_package_name": "com.android.chrome",
            "browser_signature_hashes": ["7HIpactkIAq2Y49orFOQKurWcI="]
        },
        {
            "browser_package_name": "com.microsoft.emmx",
            "browser_signature_hashes": ["对应浏览器的签名哈希"]
        }
    ]
}

注:浏览器签名哈希可通过MSAL官方工具生成或查阅文档获取。

3. 确认SDK版本兼容性

确保Intune SDK与MSAL版本完全匹配,优先使用官方推荐的配套版本;若当前最新版仍存在API33适配问题,可临时回退到已验证稳定的版本。

4. 验证PIN流程后的触发逻辑

完成上述配置后重新测试,确认PIN设置后SDK不再触发浏览器检测异常,流程可正常推进并接收ENROLLMENT_SUCCEEDED广播。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:44:56