如何在使用自定义开发客户端的EXPO托管项目中提升Android构建的minSdk版本?
解决Expo托管项目中Android minSdkVersion提升问题
这个问题我碰到过好多次了——当引入的第三方库要求的minSdk版本比你项目当前设置的更高时,Manifest合并就会直接报错。针对你的Expo托管项目(还用到了带原生代码的自定义开发客户端),可以按下面的步骤一步步来解决:
第一步:更新Expo核心配置文件
先从最基础的Expo配置入手,找到项目根目录的app.json或者app.config.js,在expo->android节点下添加或修改minSdkVersion为24:{ "expo": { "android": { "minSdkVersion": 24, // 保留你原来的其他Android配置,比如package、versionCode等 } } }要是你用的是
app.config.js,就改成JS对象的写法,逻辑是一样的。第二步:同步EAS Build配置(如果用EAS构建)
如果你是用EAS Build来生成自定义开发客户端,一般来说只要app.json里设置好了,EAS会自动读取这个配置。但如果你在eas.json里有自定义的gradle相关配置,记得确认没有覆盖掉minSdkVersion的设置。第三步:调整本地原生gradle配置(如果有自定义修改)
因为你用了自定义开发客户端,大概率已经生成了本地的android目录。这时候需要手动检查gradle文件:- 打开
android/build.gradle,找到ext代码块,把minSdkVersion改成24:buildscript { ext { minSdkVersion = 24 compileSdkVersion = 33 // 可以同步对应最新的compileSdk,不过不是必须的 targetSdkVersion = 33 } } - 或者直接修改
android/app/build.gradle里的defaultConfig:android { defaultConfig { minSdkVersion 24 // 其他原有配置... } }
修改完成后,最好清理一下gradle缓存,避免旧配置干扰:
cd android && ./gradlew clean- 打开
第四步:重新构建自定义开发客户端
最后一步就是重新构建你的开发客户端了,用EAS的话跑这个命令:eas build --profile development --platform android要是本地构建的话,就用:
npx expo run:android
这样操作后,你的项目minSdkVersion就升到24了,应该就能解决那个Manifest合并失败的错误了。如果之后还有其他依赖冲突,再针对性调整就行~
内容的提问来源于stack exchange,提问作者Victor Glez
相关产品推荐
相关产品推荐

