Unity集成AdMob UMP遇异常:找不到com.google.android.ump.UserMessagingPlatform类
解决Google AdMob UMP的ClassNotFoundException问题
针对你在Unity 2021.3.9f1 + AdMob SDK v11.0.0环境下,设备运行时抛出com.google.android.ump.UserMessagingPlatform类找不到的异常,尝试以下解决方案:
1. 修正ProGuard/R8规则
你之前添加的规则未覆盖UMP核心类,替换为以下完整规则:
# 保留UMP所有类和接口 -keep class com.google.android.ump.** { *; } -keep interface com.google.android.ump.** { *; } # 保留Google Play服务相关类,避免混淆 -keep class com.google.android.gms.** { *; } -dontwarn com.google.android.gms.** # 保留必要属性,确保反射正常工作 -keepattributes Signature, InnerClasses, EnclosingMethod
如果使用R8(Unity 2021.x默认启用),上述规则同样适用。
2. 启用Dex分包(针对低版本SDK)
若你的Minimum API Level设置低于21,需在Gradle模板中启用MultiDex:
- 打开
Player Settings > Android > Publishing Settings,勾选Custom Main Gradle Template和Custom Base Gradle Template - 在
mainTemplate.gradle的defaultConfig块中添加:
multiDexEnabled true
- 若minSdkVersion <21,还需在
baseProjectTemplate.gradle的dependencies块添加MultiDex依赖:
implementation 'androidx.multidex:multidex:2.0.1'
3. 重新集成AdMob SDK
可能存在SDK文件缺失或损坏:
- 删除
Plugins/Android下所有AdMob相关的aar/jar文件 - 打开Unity Package Manager,找到Google Mobile Ads SDK,点击
Remove后重新Install - 确保安装过程无报错,UMP相关依赖已自动导入
4. 清理构建缓存并重新构建
Unity缓存可能残留旧的构建文件:
- 点击
File > Build Settings > Android > Clean Build - 等待清理完成后,重新构建APK/Android App Bundle
5. 检查设备环境
- 确保测试设备上的Google Play服务已更新至最新版本
- 避免使用无Google Play服务的模拟器或设备(如国内定制ROM无GMS)
内容的提问来源于stack exchange,提问作者Dror
相关产品推荐
相关产品推荐

