Expo项目app.json配置报错求助:权限字段与资源文件问题
解决Expo app.json配置的两个错误
错误信息
错误 11:12:验证app.json字段时出错。 • 字段:android.config - 不应包含额外属性'permissions'。
错误 11:12:验证app.json资源字段时出错。 • 字段:android.adaptiveIcon.foregroundImage - 无法访问文件'./assets/adaptive-icon.png'。
详细错误日志:
11:12 Error: Problem validating fields in app.json. Learn more: docs.expo.dev/workflow/configuration • Field: android.config - should NOT have additional property 'permissions'. ERROR 11:12 Error: Problems validating asset fields in app.json. Learn more: docs.expo.dev • Field: android.adaptiveIcon.foregroundImage - cannot access file at './assets/adaptive-icon.png'.
原配置代码
{ "expo": { "name": "cracash", "slug": "cracash", "version": "1.0.0", "orientation": "portrait", "icon": "./assets/icon.png", "userInterfaceStyle": "light", "splash": { "image": "./assets/splash.png", "resizeMode": "contain", "backgroundColor": "#ffffff" }, "updates": { "fallbackToCacheTimeout": 0 }, "assetBundlePatterns": [ "**/*" ], "ios": { "bundleIdentifier": "com.cracash", "config": { "googleMapsApiKey": "hidden" }, "supportsTablet": true }, "android": { "adaptiveIcon": { "foregroundImage": "./assets/adaptive-icon.png", "backgroundColor": "#FFFFFF" }, "package":"com.cracash", "config" :{ "googleMaps":{ "apiKey":"hidden" }, "permissions":["ACCESS_COARSE_LOCATION","ACCESS_FINE_LOCATION","FOREGROUND_SERVICE"] } }, "web": { "favicon": "./assets/favicon.png" } } }
修复方案
1. 修正permissions字段位置
Expo的Android权限配置不能放在android.config下,需要将permissions数组直接作为android对象的子属性。
2. 修复自适应图标文件问题
- 检查项目中
./assets/adaptive-icon.png文件是否存在,若不存在:- 可以替换成已有的图标路径(比如复用
./assets/icon.png) - 或者创建符合尺寸要求的自适应图标文件后放入assets目录
- 可以替换成已有的图标路径(比如复用
修改后的完整配置代码
{ "expo": { "name": "cracash", "slug": "cracash", "version": "1.0.0", "orientation": "portrait", "icon": "./assets/icon.png", "userInterfaceStyle": "light", "splash": { "image": "./assets/splash.png", "resizeMode": "contain", "backgroundColor": "#ffffff" }, "updates": { "fallbackToCacheTimeout": 0 }, "assetBundlePatterns": [ "**/*" ], "ios": { "bundleIdentifier": "com.cracash", "config": { "googleMapsApiKey": "hidden" }, "supportsTablet": true }, "android": { "adaptiveIcon": { "foregroundImage": "./assets/icon.png", // 替换为存在的图标文件路径 "backgroundColor": "#FFFFFF" }, "package":"com.cracash", "config" :{ "googleMaps":{ "apiKey":"hidden" } }, "permissions":["ACCESS_COARSE_LOCATION","ACCESS_FINE_LOCATION","FOREGROUND_SERVICE"] // 移到android对象下 }, "web": { "favicon": "./assets/favicon.png" } } }
内容的提问来源于stack exchange,提问作者Khon3001
相关产品推荐
相关产品推荐

