Expo SDK 48 Android构建失败:两项错误求解决
解决Expo SDK升级后Android构建失败的问题
针对DefaultConfig找不到boolish()方法的解决思路
- 检查Gradle版本:打开
android/gradle/wrapper/gradle-wrapper.properties,确认distributionUrl指向Gradle 7.4及以上版本,例如:
boolish()是Gradle 7+新增的API,低版本Gradle不支持,这是expo-updates高版本依赖的特性。distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
针对未指定compileSdkVersion的解决思路
- 统一项目compileSdkVersion配置:
- 在项目根目录的
android/build.gradle中,确保buildscript块内的ext定义了正确的版本(版本号需匹配当前Expo SDK要求,比如SDK 50对应34,SDK 49对应33):buildscript { ext { compileSdkVersion = 34 targetSdkVersion = 34 minSdkVersion = 21 } // 其他配置... } - 在
android/app/build.gradle中引用这个全局变量,避免硬编码或未指定:android { compileSdkVersion rootProject.ext.compileSdkVersion // 其他配置... }
- 在项目根目录的
结合GitHub Issue#17710的额外排查步骤
- 确保expo-updates版本与Expo SDK完全匹配:执行
npx expo install expo-updates,自动安装当前SDK对应的适配版本,避免版本不兼容导致的Gradle配置冲突。 - 彻底清理缓存:
# 进入Android目录清理Gradle缓存 cd android && ./gradlew clean && rm -rf .gradle # 返回根目录清理Node依赖缓存 cd .. && rm -rf node_modules package-lock.json yarn.lock # 重新安装依赖 npm install - 排查第三方依赖冲突:暂时移除非核心第三方库,逐个恢复并构建,确认是否有库覆盖了Gradle全局配置导致冲突。
内容的提问来源于stack exchange,提问作者thom4ever
相关产品推荐
相关产品推荐

