Android SDK 30下react-native-image-picker的launchImageLibrary启动异常问题
React Native 调用launchImageLibrary报错修复方案
1. 修复4.0.6版本下的selectionLimit报错
react-native-image-picker 4.x版本对API做了不兼容更新,selectionLimit参数从可选改为必填,需要在调用方法时显式声明该参数:
launchImageLibrary( { mediaType: 'photo', selectionLimit: 1, // 单选传1,多选传对应最大可选数量,无限制传0 // 其余原有配置项保留 }, (response) => { // 原有回调逻辑 } )
2. 修复targetSdkVersion 30下的Activity error报错
该错误由Android 11(API 30)引入的包可见性限制导致,需要在应用清单中补充查询相册应用的权限声明:
- 打开项目下
/android/app/src/main/AndroidManifest.xml文件,在<manifest>根标签内(与<application>标签平级)添加如下配置:
<queries> <!-- 相册选图权限 --> <intent> <action android:name="android.intent.action.PICK" /> <data android:mimeType="image/*" /> </intent> <intent> <action android:name="android.intent.action.PICK" /> <data android:mimeType="video/*" /> </intent> <!-- 若同时使用拍照功能,需补充以下配置 --> <intent> <action android:name="android.media.action.IMAGE_CAPTURE" /> </intent> </queries>
- 检查
/android/build.gradle中的Android Gradle插件版本,必须高于3.5.4才能识别<queries>标签,版本过低需先升级插件 - 配置完成后清除构建缓存重新运行:
- 执行
cd android && ./gradlew clean清除安卓构建缓存 - 回到项目根目录执行
npx react-native run-android重新安装应用测试
- 执行
内容的提问来源于stack exchange,提问作者Ivan Kozlov
相关产品推荐
相关产品推荐

