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

安装OneSignal插件后Android构建失败:Multiple dex files define Lcom/google/android/gms/internal/zzew

解决:transformClassesWithDexForDebug因重复Google Play Services依赖失败的问题

这个错误我之前在集成OneSignal的时候也碰到过,核心原因就是项目里多个插件引入了不同版本的Google Play Services库,导致Dex打包时出现重复类Lcom/google/android/gms/internal/zzew;。下面是我亲测有效的解决步骤:

1. 全局统一Google Play Services版本

这是最直接的解决方案,强制所有插件使用同一个兼容版本的Google Play Services:

  • 打开项目里的platforms/android/build.gradle文件
  • 在allprojects代码块中添加以下配置(版本号可以根据OneSignal官方推荐调整,比如17.0.0是比较稳定的兼容版本):
    allprojects {
        repositories {
            // 原有仓库配置...
        }
        // 添加这段统一版本的配置
        configurations.all {
            resolutionStrategy.eachDependency { DependencyResolveDetails details ->
                def requested = details.requested
                if (requested.group == 'com.google.android.gms') {
                    details.useVersion '17.0.0'
                }
            }
        }
    }
    

2. 排查并移除重复依赖

如果统一版本后还有问题,可以检查依赖树找到冲突源:

  • 进入platforms/android目录,运行命令查看完整依赖树:
    ./gradlew dependencies
    
  • 搜索com.google.android.gms,找到哪些插件引入了不同版本的库,必要时可以在对应插件的依赖中排除冲突项,比如:
    dependencies {
        implementation('com.example.some-plugin:xxx:1.0.0') {
            exclude group: 'com.google.android.gms'
        }
    }
    

3. 清理缓存后重新构建

缓存残留也可能导致问题,先彻底清理再构建:

# 清理Ionic项目缓存
ionic cordova clean android
# 进入Android目录清理gradle缓存
cd platforms/android
./gradlew clean
# 重新构建debug版本
ionic cordova build android --debug

4. 升级OneSignal插件到最新版

旧版本的OneSignal可能依赖较老的Google Play Services,升级到最新版能减少版本兼容问题:

ionic cordova plugin rm onesignal-cordova-plugin
ionic cordova plugin add onesignal-cordova-plugin@latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:11:15