Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在模块上执行导出方法askAsync时发生异常:null_Android_React Native_Expo - Fatal编程技术网

Android 在模块上执行导出方法askAsync时发生异常:null

Android 在模块上执行导出方法askAsync时发生异常:null,android,react-native,expo,Android,React Native,Expo,我在使用ExpoPermission接口时出错。我刚开始通过React和Expo了解Android开发,并按照指南创建了一个新项目 npm install -g create-react-native-app create-react-native-app my-app cd my-app/ npm start 一切正常,示例在我的手机上运行,然后我添加了一个简单的按钮,可以调用expo文档中的示例,但当我按下它时,它会启动此消息 [Error: Encountered an excep

我在使用ExpoPermission接口时出错。我刚开始通过React和Expo了解Android开发,并按照指南创建了一个新项目

npm install -g create-react-native-app 
create-react-native-app my-app 
cd my-app/ 
npm start
一切正常,示例在我的手机上运行,然后我添加了一个简单的按钮,可以调用expo文档中的示例,但当我按下它时,它会启动此消息

[Error: Encountered an exception while calling native method: Exception occurred while executing exported method askAsync on module ExpoPermissions: null]
我的代码很简单,只是添加到视图中

<TouchableOpacity onPress={handlePressMe} style={styles.helpLink}>
  <Text style={styles.LinkBlue}>
    Press me!
  </Text>
</TouchableOpacity>
import*作为来自“expo Permissions”的权限

我已经阅读了Expo的文档,发现很多安装都是为了这个库,但是没有任何改变,以防万一,我添加了这两个东西

sudo expo install expo-permissions
sudo yarn add react-native-unimodules
还要注意的是,我向app.json添加了权限,并尝试使用getAsync查看是否已授予该权限,但启动了相同的错误,这是我的app.json:

{
  "expo": {
    "name": "Test App",
    "slug": "testApp",
    "privacy": "public",
    "sdkVersion": "35.0.0",
    "platforms": [
      "android",
      "web"
    ],
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/images/icon.png",
    "splash": {
      "image": "./assets/images/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ],
    "android": {
      "permissions": [
        "WRITE_EXTERNAL_STORAGE"
      ]
    }
  }
}

尝试搜索更多信息,但我发现的唯一问题是未回答的主题。是否有人知道问题出在哪里,或者如何提示更多信息?它显示的唯一内容是null。

在尝试直接使用React Native执行此操作后,我在这里发现了问题:

Expo使用自己的方式命名权限,因此,如果您想要请求写入外部存储,而在RN上,您将准确地调用此权限,而在Expo上,您需要请求相机滚动权限,其中包括写入和读取权限。这个错误消息没有什么直观性,因为它只标记为null,而试图说由于错误而将null作为参数发送 您正在请求的权限(Permissions.WRITE\u EXTERNAL\u STORAGE)返回null。因此,解决方案是将其更改为:

const granted = await Permissions.askAsync(Permissions.CAMERA_ROLL);
希望这对未来有帮助

const granted = await Permissions.askAsync(Permissions.CAMERA_ROLL);