Expo构建Android AAB报错:drawable/splashscreen_logo未找到
Expo构建AAB报错:drawable/splashscreen_logo资源未找到
问题概述
本地运行React Native应用时启动页显示正常,但使用EAS构建AAB安装包时出现以下问题:
- 资源
com.kingsola2.isioma2:drawable/splashscreen_logo未找到,具体为ic_launcher_background.xml中引用该资源失败 - 构建任务
:app:processReleaseResources执行失败 - 伴随警告:
FileSystemFileProvider@android:authorities被标记为替换其他声明,但未找到对应声明 - 修改app.json后出现该问题,恢复代码至初始状态仍无法解决
当前配置文件:
app.json
{ "expo": { "name": "isioma3", "slug": "isioma3", "version": "1.0.0", "orientation": "portrait", "icon": "./assets/icon.png", "userInterfaceStyle": "light", "newArchEnabled": true, "splash": { "image": "./assets/splash-icon.png", "resizeMode": "contain", "backgroundColor": "#ffffff" }, "ios": { "supportsTablet": true }, "android": { "adaptiveIcon": { "foregroundImage": "./assets/adaptive-icon.png", "backgroundColor": "#ffffff" }, "package": "com.kingsola2.isioma3" }, "web": { "favicon": "./assets/favicon.png" }, "extra": { "eas": { "projectId": "e2b576" } }, "owner": "kingsola2" } }
eas.json
{ "cli": { "version": ">= 13.2.3", "appVersionSource": "remote" }, "build": { "development": { "developmentClient": true, "distribution": "internal" }, "preview": { "distribution": "internal" }, "production": { "autoIncrement": true } }, "submit": { "production": {} } }
解决方案
1. 清理EAS构建缓存
Expo构建缓存可能残留旧的资源配置或包名信息,即使代码恢复也会影响构建:
eas build --clear-cache
2. 修正包名不一致问题
报错中引用的包名是com.kingsola2.isioma2,但当前app.json配置的是com.kingsola2.isioma3,这是核心问题:
- 运行
expo config确认当前生效的配置,确保android.package字段为com.kingsola2.isioma3 - 检查Expo Dashboard中的项目配置,确认包名与本地配置一致
- 若之前手动修改过包名,执行以下命令重新生成Android资源:
expo prebuild --clean
3. 清理本地Expo缓存
删除本地缓存目录,避免旧资源残留:
rm -rf .expo
4. 验证启动页资源
- 确认
./assets/splash-icon.png文件存在,且尺寸符合Expo要求(建议至少1200x1200像素) - 若资源无误,重新执行预构建命令生成标准化的Android drawable资源:
expo prebuild
5. 处理FileSystemFileProvider警告
该警告通常是缓存残留导致,完成上述步骤后会自动消失。若仍存在,可在app.json的android字段中添加以下配置(仅针对bare workflow):
"android": { // 其他配置... "manifest": { "application": { "provider": [ { "android:name": "expo.modules.filesystem.FileSystemFileProvider", "android:authorities": "${applicationId}.expoview.filesystem", "android:exported": false, "android:grantUriPermissions": true, "meta-data": { "android:name": "android.support.FILE_PROVIDER_PATHS", "android:resource": "@xml/expo_file_provider_paths" } } ] } } }
完成以上步骤后,重新执行eas build --platform android即可正常构建AAB包。
内容的提问来源于stack exchange,提问作者Chukwuma Kingsley
相关产品推荐
相关产品推荐

