你没有指定React Native的版本号。
我使用了同样的react-native-device-info包。
我尝试了以下版本,它对我起作用了。
"react": "16.0.0",
"react-native": "0.50.4",
"react-native-device-info": "^0.12.1",
我用以下命令安装了它:
:
npm install --save react-native-device-info
然后我使用命令将它链接起来:
react-native link react-native-device-info
如果您在链接包时遇到任何问题,则可以手动链接或交叉检查包是否成功链接。
- 在 android/app/build.gradle 文件中:
dependencies {
...
compile "com.facebook.react:react-native:+"
+ compile project(':react-native-device-info')
}
- 在android/settings.gradle文件中:
...
include ':app'
include ':react-native-device-info'
project(':react-native-device-info').projectDir = new File(rootProject.projectDir,
'../node_modules/react-native-device-info/android')
- 在MainApplication.java文件中:
+ import com.learnium.RNDeviceInfo.RNDeviceInfo;
public class MainApplication extends Application implements ReactApplication {
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
+ new RNDeviceInfo(),
new MainReactPackage()
);
}
......
}
权限
在AndroidManifest.xml文件中添加相应的可选权限:
...
<uses-permission android:name="android.permission.BLUETOOTH"/> <!-- for Device Name -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> <!-- for Phone Number -->
例子
var DeviceInfo = require('react-native-device-info');
var deviceId = DeviceInfo.getUniqueID();
您可以使用上述设备ID。
TypeError: undefined is not an object (evaluating '_reactNativeDeviceInfo.DeviceInfo.getVersion')
"react": "16.0.0", "react-native": "0.50.3", "react-native-device-info": "^0.14.0",
- Azmeer"react": "16.0.0", "react-native": "0.50.3", "react-native-device-info": "^0.14.0"
- Azmeer