ImagePicker isn't work

Please provide the following:

  1. SDK Version: 35.0.0
  2. Platforms(Android/iOS/web/all): android

for some reason i’m taking the very same component of the example in the expo docs, but this warning

[Unhandled promise rejection: TypeError: ImagePicker.requestCameraRollPermissionsAsync is not a function. (In ‘ImagePicker.requestCameraRollPermissionsAsync()’, ‘ImagePicker.requestCameraRollPermissionsAsync’ is undefined)]

  • components\imagePicker.js:7:33 in openImagePickerAsync$

and this is my component

import React from 'react';

import { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native';

import * as ImagePicker from 'expo-image-picker';

export default function ImagePickerComp() {

  let openImagePickerAsync = async () => {

    let permissionResult = await ImagePicker.requestCameraRollPermissionsAsync();

    if (permissionResult.granted === false) {

      alert('Permission to access camera roll is required!');

      return;

    }

    let pickerResult = await ImagePicker.launchImageLibraryAsync();

    console.log(pickerResult);

  };

  return (

    <View style={styles.container}>

      <Image source={{ uri: 'https://i.imgur.com/TkIrScD.png' }} style={styles.logo} />

      <Text style={styles.instructions}>

        To share a photo from your phone with a friend, just press the button below!

      </Text>

      <TouchableOpacity onPress={openImagePickerAsync} style={styles.button}>

        <Text style={styles.buttonText}>Pick a photo</Text>

      </TouchableOpacity>

    </View>

  );

}

const styles = StyleSheet.create({

  container: {

    flex: 2,

    backgroundColor: '#fff',

    alignItems: 'center',

    justifyContent: 'center',

  },

  logo: {

    width: 305,

    height: 159,

    marginBottom: 20,

  },

  instructions: {

    color: '#888',

    fontSize: 18,

    marginHorizontal: 15,

    marginBottom: 5,

  },

  button: {

    backgroundColor: 'blue',

    padding: 20,

    borderRadius: 5,

  },

  buttonText: {

    fontSize: 20,

    color: '#fff',

  },

});

please, help!

You didn’t import permissions:

import * as Permissions from ‘expo-permissions’;

This should fix the problem you are having.

Hi. It looks like you’re using the SDK 36 way of asking for permission while using SDK 35. Check the SDK 35 docs:

https://docs.expo.io/versions/v35.0.0/sdk/permissions/
https://docs.expo.io/versions/v35.0.0/sdk/imagepicker/#usage

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.