升级Expo 51后构建AAB时AdMob编译错误求助
解决Expo 51构建AAB时react-native-google-mobile-ads的Kotlin编译错误
以下是几种可行的修复方案,按优先级尝试:
检查依赖版本兼容性
Expo 51对应React Native 0.74.x,react-native-google-mobile-ads版本必须适配这个RN版本。直接升级到最新稳定版:npm install react-native-google-mobile-ads@latest --save升级后记得重新生成原生目录(裸工作流)或执行预构建:
npx expo prebuild --clean同步Kotlin版本
Expo 51默认的Kotlin版本可能和广告依赖不匹配,修改android/build.gradle里的Kotlin版本为1.9.20及以上:buildscript { ext { kotlinVersion = "1.9.20" } // 其他原有配置保持不变 }彻底清理构建缓存
仅清理npm缓存不够,还需清理Gradle缓存:cd android ./gradlew clean ./gradlew build --refresh-dependencies cd .. npx expo start --clear检查Android SDK配置
确认android/build.gradle里的SDK版本和Expo 51要求一致:buildscript { ext { compileSdkVersion = 34 targetSdkVersion = 34 buildToolsVersion = "34.0.0" } }同时确保本地Android SDK已安装API 34及对应构建工具。
获取详细错误日志定位问题
执行构建时添加--info参数拿到完整编译日志,明确具体报错的Kotlin代码或依赖问题:eas build --platform android --profile production --info根据日志里的具体提示(比如语法不兼容、依赖类重复)针对性修复。
排除冲突依赖
如果是依赖冲突导致的,在android/app/build.gradle里排除冲突模块:implementation('com.google.android.gms:play-services-ads') { exclude group: 'com.android.support' }
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

