Gradle构建报错:useDefaultAndroidSdkVersions()方法不存在等问题求助
解决Gradle 8.3构建Expo Android项目的两个错误
针对你遇到的两个构建错误,以下是具体的解决步骤:
错误1:找不到useDefaultAndroidSdkVersions()方法
这个方法属于旧版Expo模块的API,Gradle 8.x已不再兼容,可通过以下方式解决:
- 升级Expo SDK及相关依赖:确保项目使用的Expo SDK版本支持Gradle 8.x(推荐SDK 50及以上)。执行
expo upgrade自动升级,或手动修改package.json中的expo、@expo/config-plugins等依赖版本后,重新运行npm install。 - 替换为显式SDK版本配置:如果暂时无法升级SDK,直接修改
/home/expo/workingdir/build/android/expo-application/build.gradle文件,将第10行的useDefaultAndroidSdkVersions()替换为具体的SDK版本配置,示例:android { compileSdkVersion 34 defaultConfig { minSdkVersion 21 targetSdkVersion 34 } }
错误2:无法获取SoftwareComponent容器的release属性
这是Gradle 8.x对SoftwareComponent API的改动导致的,旧版ExpoModulesCore插件未适配,解决方案:
- 升级Expo Modules Core:通过升级Expo SDK即可同步更新该插件,这是最彻底的解决方式。
- 手动修改插件代码:若升级SDK后仍存在问题,打开
ExpoModulesCorePlugin.gradle文件,找到第65行,将原来的components.release修改为components.findByName("release"),适配Gradle 8.x的API规范。
最后清理缓存重新构建
完成上述调整后,执行以下命令清理缓存并重新构建:
cd /home/expo/workingdir/build/android ./gradlew clean ./gradlew :app:assembleRelease
同时可以清理Expo项目缓存:expo r -c
内容的提问来源于stack exchange,提问作者Kamal Nath
相关产品推荐
相关产品推荐

