Javascript 未定义的不是对象(正在计算';RNDeviceInfo.deviceId';)-反应本机设备信息中出现错误
我使用的是react本机设备信息库,它可以很好地用于iOS模拟器。但对于Android,我收到一个错误:Javascript 未定义的不是对象(正在计算';RNDeviceInfo.deviceId';)-反应本机设备信息中出现错误,javascript,android,react-native,Javascript,Android,React Native,我使用的是react本机设备信息库,它可以很好地用于iOS模拟器。但对于Android,我收到一个错误: undefined is not object (evaluating 'RNDeviceInfo.deviceId') 有什么问题吗? 我按照库页面指南中的说明安装了它(使用rnpm)。 然后在componentWillMount()中,我尝试获取设备id: import DeviceInfo from 'react-native-device-info'; ... component
undefined is not object (evaluating 'RNDeviceInfo.deviceId')
有什么问题吗?
我按照库页面指南中的说明安装了它(使用rnpm)。
然后在componentWillMount()中,我尝试获取设备id:
import DeviceInfo from 'react-native-device-info';
...
componentWillMount() {
let clientId = DeviceInfo.getUniqueID();
}
除了
rnpm install react native device info
和中的说明之外,我还必须手动向以下文件添加一些行:
/android/settings.gradle
:
rootProject.name='YourReactProject'
包括“:应用程序“,”:反应本机设备信息”
project(“:react native device info”).projectDir=newFile(rootProject.projectDir,“../node_modules/react native device info/android”)
/android/app/build.gradle
:
。。。
依赖关系{
编译文件树(目录:“libs”,包括:[“*.jar”])
编译“com.android.support:appcompat-v7:23.0.1”
从节点_模块编译“com.facebook.react:react native:+”//
编译项目(“:反应本机设备信息”)
}
...
react native run android来重建
首先检查是否将其添加到package.json中? 然后使用以下命令将包链接到react native
react-native link react-native-device-info
它手动将包与react native链接
我在IOS中面临这个问题
甚至我也链接了显示相同问题的包
在Xcode中打开您的项目,
然后在构建阶段下,单击+按钮,添加一个二进制文件,其中包含react本机设备信息
重新运行这个项目,它对我有效
看起来这个软件包现在使用椰子荚。运行
react native link
,然后检查您的pod文件是否有以下内容:
pod 'RNDeviceInfo', :path => '../node_modules/react-native-device-info'
如果在那里,那么你只需要安装/更新你的播客
cd ios
pod install
或
确保重新启动metro服务器并重新运行react native run ios使用并更改
您的项目\node\u modules\react native device info\android\build.gradle'
在这里,作为编译的实现首先,如果您使用的是react native version<0.60,请确保项目中链接了
react native device info
。
如果未链接,则使用react native link react native device info
链接,然后运行react native run android
命令
如果使用react native version>=0.60跳过此链接命令,因为自动链接应该可以工作,但请确保运行react native run android
命令
然后使用
从“反应本机设备信息”导入设备信息
DeviceInfo.getUniqueId()
有一个小错误。您正在使用DeviceInfo.getUniqueID()而不是DeviceInfo.getUniqueId()
查看文档您使用的RN版本是什么?“react native”:“^0.27.1”,并且您已经按照android自述文件中的其他步骤进行了操作?具体来说,您已将代码添加到MainActivity?指南中说:“rnpm安装react-native设备信息。rnpm将安装(--save)此模块,然后链接react-native,因此您不必按如下方式链接每个平台。”-所以看起来我不需要这样做。我查看了主活动-rnpm自动添加了这些行。
cd ios
pod update
dependencies {
def googlePlayServicesVersion = project.hasProperty('googlePlayServicesVersion') ? project.googlePlayServicesVersion : DEFAULT_GOOGLE_PLAY_SERVICES_VERSION
compile 'com.facebook.react:react-native:+'
compile "com.google.android.gms:play-services-gcm:$googlePlayServicesVersion"}