我正在开发一个 Expo React Native 项目,最近升级到 Expo SDK 52(“expo”:“^52.0.0”)。升级后,我的 EAS Build for Android 开始失败,并出现以下错误:
[mipmap-hdpi-v4/ic_launcher_round] /home/expo/workingdir/build/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
[mipmap-hdpi-v4/ic_launcher_round] /home/expo/workingdir/build/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
错误:重复资源
...(其他 mipmap 文件夹也出现类似错误)
{
"expo": {
"name": "MyApp",
"icon": "./assets/images/icon.png",
"android": {
"versionCode": 15,
"adaptiveIcon": {
"foregroundImage": "./assets/images/adaptive-icon.png",
"backgroundColor": "#ffffff"
}
},
}
}
我的项目中没有 .png 和 .webp 启动器图标。每个启动器图标仅以一种格式存在。
升级到Expo SDK 52后如何解决重复资源错误?
我在升级到 Expo 52 时遇到了同样的问题。对我来说,导致问题的原因是 package.json 中的分辨率字段中有
@expo/prebuild-config
,有效地将其固定到旧版本。删除此分辨率并允许 @expo/prebuild-config
升级到最新的兼容版本(主要版本 8)为我解决了这个问题。
我会检查您的锁定文件,看看您是否使用的是旧版本的
@expo/prebuild-config
,尽管已升级到 Expo 52。
要调试此特定问题,升级后,您可以在本地运行
npx expo prebuild
(此步骤发生在云端 EAS 构建期间),并手动检查 android
目录以检查是否有重复资源。希望这有帮助。