2016-07-10 10 views
3

Ich verwende react-native-device-info Bibliothek, und es funktioniert gut für iOS-Simulator. Aber für Android erhalte ich einen Fehler:undefined ist kein Objekt (Bewertung 'RNDeviceInfo.deviceId') - Fehler in react-native-device-info

undefined is not object (evaluating 'RNDeviceInfo.deviceId') 

Was kann das Problem sein? Ich installierte es wie in der Anleitung auf der Bibliotheksseite beschrieben (mit RMPM). dann in componentWillMount() Ich versuche, die Geräte-ID zu erhalten:

import DeviceInfo from 'react-native-device-info'; 
... 
componentWillMount() { 
    let clientId = DeviceInfo.getUniqueID(); 
    } 
+0

Welche Version von RN verwenden Sie? – Barnabus

+0

"react-native": "^ 0.27.1" – Reynard

+0

Und Sie haben die anderen Schritte auf der Readme für Android verfolgt? Konkret haben Sie den Code zu MainActivity hinzugefügt? – Barnabus

Antwort

2

Neben rnpm install react-native-device-info und Anweisung von here, hatte ich ein paar Zeilen auf die folgenden Dateien manuell hinzuzufügen:

  1. <YourReactProject>/android/settings.gradle:

    rootProject.name = 'YourReactProject' 
    
    include ':app', ':react-native-device-info' 
    project(':react-native-device-info').projectDir = newFile(rootProject.projectDir, '../node_modules/react-native-device-info/android') 
    
  2. <YourReactProject>/android/app/build.gradle:

    ... 
    
    dependencies { 
        compile fileTree(dir: "libs", include: ["*.jar"]) 
        compile "com.android.support:appcompat-v7:23.0.1" 
        compile "com.facebook.react:react-native:+" // From node_modules 
        compile project(':react-native-device-info') 
    } 
    
    ... 
    
  3. Rebuild von react-native run-android

0

Prüfen Sie zuerst ausgeführt wird, es zu Ihrem package.json hinzugefügt oder nicht? verknüpfen Sie dann das Paket mit nativer reagieren Befehl folgenden mit

react-native link react-native-device-info 

Es verbindet das Paket manuell mit reagieren-native.

Ich bin mit diesem Problem in IOS konfrontiert.

Auch ich verlinke das Paket es zeigt das gleiche Problem.

Öffnen Sie Ihr Projekt in Xcode, dann unter Build-Phasen fügen Sie eine Binärdatei von react-native-Gerät-Info durch Klicken auf die Schaltfläche +.

Wiederholen Sie das Projekt, es funktionierte für mich.

enter image description here

Verwandte Themen