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

Android新手求助:真机调试含外部依赖的应用崩溃问题

解决方案:Azure Calling SDK真机崩溃(ClassNotFoundException: NTLMEngineImpl)

针对你遇到的com.microsoft.media.NTLMEngineImpl类找不到导致的JNI崩溃问题,以下是几个针对性的解决步骤:

  • 启用Multidex分包
    真机环境下可能触发64K方法数限制,导致部分依赖类未被正确打包到Dex中。在app/build.gradle中做如下修改:

    android {
        defaultConfig {
            // 开启Multidex
            multiDexEnabled true
        }
    }
    
    dependencies {
        // 添加Multidex依赖
        implementation 'androidx.multidex:multidex:2.0.1'
    }
    

    若你使用自定义Application类,需让它继承MultiDexApplication;若无自定义Application,在AndroidManifest.xml的<application>标签中指定android:name="androidx.multidex.MultiDexApplication"。

  • 配置正确的ABI过滤
    Azure Calling SDK包含针对不同CPU架构的原生库,真机的架构(如arm64-v8a)可能未被包含在你的打包配置中。在app/build.gradle的android块内添加:

    android {
        defaultConfig {
            ndk {
                // 包含真机和模拟器所需的ABI
                abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
            }
        }
    }
    
  • 升级SDK版本
    你使用的com.azure.android:azure-communication-calling:1.0.0是早期版本,存在已知的兼容性问题。建议升级到官方最新的稳定版本,新版本通常修复了这类类加载和JNI相关的bug。

  • 清理重建项目
    执行Android Studio的Build -> Clean Project,再选择Build -> Rebuild Project,彻底清除缓存后重新部署到真机,避免缓存导致的依赖打包不全问题。

  • 配置混淆规则(若开启了R8/ProGuard)
    如果你开启了代码混淆,需要确保Azure Calling SDK的类不被误删,在proguard-rules.pro中添加:

    -keep class com.microsoft.media.** { *; }
    -keep class com.azure.android.communication.calling.** { *; }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:35:26