Android react native permissions在react native expo项目中返回RNPermissions null

Android react native permissions在react native expo项目中返回RNPermissions null,android,reactjs,react-native,react-native-android,react-native-permissions,Android,Reactjs,React Native,React Native Android,React Native Permissions,我是世博会的新手,我不知道这里有什么问题,我对安卓已经足够好了,我正在尝试在一个新创建的世博会项目中使用。我没有触及项目内部的任何内容,只是创建了一个全新的项目,我收到一个错误,说RNPermissions is null。我想它告诉我们关于我的android应用程序的细节,有人能帮我如何启动吗?我正在使用二维码扫描仪的代码,我卸载了依赖项中的所有内容,只留下以下内容: "dependencies": { "expo": "~36.0.0", "react": "~16.9.0"

我是世博会的新手,我不知道这里有什么问题,我对安卓已经足够好了,我正在尝试在一个新创建的世博会项目中使用。我没有触及项目内部的任何内容,只是创建了一个全新的项目,我收到一个错误,说
RNPermissions is null
。我想它告诉我们关于我的android应用程序的细节,有人能帮我如何启动吗?我正在使用二维码扫描仪的代码,我卸载了依赖项中的所有内容,只留下以下内容:

"dependencies": {
    "expo": "~36.0.0",
    "react": "~16.9.0",
    "react-dom": "~16.9.0",
    "react-native": "https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz",
    "react-native-permissions": "^2.0.2",
    "react-native-web": "~0.11.7"
}
因此,App.js中只有一条基本的欢迎回复信息,如下所示:

import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { check, PERMISSIONS, RESULTS } from 'react-native-permissions';

class App extends React.Component {
  constructor(props) {
    super(props);
  }
  render() {
    return (
      <View style={styles.container}>
        <Text>Open up App.js to start working on your app!</Text>
      </View>  
    );
  }
}
const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',     
  },
});
export default App;

根据您在App.js上共享的内容,您没有使用
react native permissions

您需要获得设备所有者的许可才能使用相机。您可能会遗漏一些内容,并希望检查以下内容:

对于Android
  • AndroidManifest.xml-您是否具有请求的所需权限
    
    
  • 确保已链接库
  • 对于iOS
  • 您需要将以下内容附加到Info.plist
  • NSCameraUsageDescription
    我们的应用程序需要您的许可才能使用您的照相手机
    
  • 确保已链接库
    • 在iOS文件夹上安装Pod(对于React Native>=0.60)
    • 在项目根目录下运行
      react-native链接
      (对于React-Native此软件包建议使用React-Native相机,同时需要链接。如果您使用的是expo,您将无法链接,因为expo不允许链接库。因此,如果您计划使用相同的库,请先从expo弹出React-Native,然后尝试使用它,因为您无法访问链接库

      如果你想在世博会上实现,那么世博会有自己的条形码扫描仪,请在下面查看。它有一个漂亮的文档。一定要阅读它


      希望它能有所帮助。不要有任何疑问

      发布你的app.jsonfile@DominikTargoszapp.json文件已添加世博会项目中的AndroidManifest.xml文件在哪里?这本来是一个简单的答案,但世博会项目中没有
      android/app/src/main/AndroidManifest.xml
      文件夹或文件,甚至没有index.js,但我做了一些挖掘他发现有多个清单xml文件,每个依赖项都有自己的。有多个,例如
      node\u modules\expo permissions\android\src\main\android Manifest.xml
      node\u modules\react native\reafedroid\src\main\android Manifest.xml
      node\u modules\react native permissions\android\src\main\AndroidManifest.xml
      @AbhishekKumarChowdhury如果我没有弄错的话,您应该在app.json中添加权限,如下所述,在
      的“权限”下:[
      @tommylong android manifest and info.plist在expo中不可用。它是纯本地的
      {
        "expo": {
          "name": "App1",
          "slug": "App1",
          "privacy": "public",
          "sdkVersion": "36.0.0",
          "platforms": [
            "ios",
            "android",
            "web"
          ],
          "version": "1.0.0",
          "orientation": "portrait",
          "icon": "./assets/icon.png",
          "splash": {
            "image": "./assets/splash.png",
            "resizeMode": "contain",
            "backgroundColor": "#ffffff"
          },
          "updates": {  
            "fallbackToCacheTimeout": 0
          },
          "assetBundlePatterns": [
            "**/*"
          ],
          "ios": {
            "supportsTablet": true
          }
        }
      }
      
          <uses-permission android:name="android.permission.INTERNET" />
          <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
          <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
          <uses-permission android:name="android.permission.CAMERA" />
      
          <key>NSCameraUsageDescription</key>
          <string>Our app need your permission to use your camera phone</string>