我想把照片保存到相册,但在RN Expo上遇到了这个错误
ERROR Capture error: [Error: Call to function 'ExpoMediaLibrary.requestPermissionsAsync' has been rejected.
→ Caused by: You have requested the AUDIO permission, but it is not declared in AndroidManifest. Update expo-media-library config plugin to include the permission before requesting it.]
Code: construct.js
2 | var setPrototypeOf = require("./setPrototypeOf.js");
3 | function _construct(t, e, r) {
> 4 | if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
| ^
5 | var o = [null];
6 | o.push.apply(o, e);
7 | var p = new (t.bind.apply(t, o))();
Call Stack
construc
我尝试了好几种解决方案,但似乎还没搞清楚问题出在哪儿。我正在使用expo-media-library。我也更新了app.json,让其中包含了所有需要的权限,但还是不起作用。
我正在尝试把从相机拍摄并在图片上叠加了一些覆盖层后生成的图片保存到手机图库。
{
"expo": {
"android": {
"adaptiveIcon": {
},
"edgeToEdgeEnabled": true,
"predictiveBackGestureEnabled": false,
"permissions": [
"android.permission.CAMERA",
"android.permission.RECORD_AUDIO",
"android.permission.ACCESS_COARSE_LOCATION",
"android.permission.ACCESS_FINE_LOCATION",
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE",
"android.permission.READ_MEDIA_VISUAL_USER_SELECTED",
"android.permission.READ_MEDIA_IMAGES",
"android.permission.READ_MEDIA_VIDEO",
"android.permission.READ_MEDIA_AUDIO"
],
"package": "com.ck34.GeoImg"
},
...
"plugins": [
[
"expo-media-library",
{
"photosPermission": "Allow GeoImg to access your photos",
"savePhotosPermission": "Allow GeoImg to save photos",
"isAccessMediaLocationEnabled": true,
"audioPermission": true
}
]
],
}
解决方案
你也需要添加以下权限吗?
这是一项音频权限,以防万一。
android.permission.MODIFY_AUDIO_SETTINGS
如果你在使用 Android 11+,你还需要以下权限
android.permission.MANAGE_EXTERNAL_STORAGE
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。