Je suis nouveau sur Expo et je ne peux pas dire quel est le problème ici, je suis assez bon avec Android et j'essaie d'utiliser le react-native-qrcode-scanner dans un projet expo vierge de réaction native nouvellement créé. Je n'ai rien touché à l'intérieur du projet, je viens de créer un tout nouveau projet et j'obtiens une erreur indiquant RNPermissions is null
. Je pense que c'est révélateur de transmettre des détails sur mon Android App, quelqu'un peut-il m'aider à démarrer? J'utilise react-native-permissions au besoin par le code de QR Code Scanner, j'ai tout désinstallé dans les dépendances et je n'ai laissé que celles-ci:
"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"
}
il y a donc juste un message de bienvenue basique pour réagir dans App.js comme ceci:
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;
CECI est le fichier app.json:
{
"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
}
}
}
Ce paquet react-native-qrcode-scanner suggère d'utiliser la caméra native react et avec cela nécessite une liaison. si vous utilisez expo, vous ne pourrez pas créer de lien car expo n'autorise pas la liaison de bibliothèques. Donc, si vous prévoyez d'utiliser la même bibliothèque, éjectez-vous d'abord de l'expo pour réagir en natif, puis essayez avec cela car vous ne pouvez pas accéder aux bibliothèques de liaison.
Si vous souhaitez l'implémenter dans expo, alors expo a son propre lecteur de codes-barres, consultez-le ci-dessous. scanner de codes-barres expo . il a une belle doc. lisez-le.
J'espère que ça aide. n'hésitez pas à avoir des doutes
D'après ce que vous avez partagé sur App.js, vous n'avez utilisé aucune des fonctions de react-native-permissions
Vous devrez obtenir l'autorisation du propriétaire de l'appareil pour utiliser la caméra. Quelques éléments que vous avez probablement manquants et vous souhaitez vérifier les éléments suivants:
<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>
react-native link
à la racine du projet (pour React Native <0.60)