react-native-device-info: TypeError: Cannot read property 'brand' of undefined

Hey guys, when i installed react-native-device-info with default option, i imported the package and wrote console.log(DeviceInfo.getBrand()); for test. but unfortunately got the same error like subject of this issue.

What should i do ?

Thanks in advance

Summary

Requirements
react-native-device-info Version 0.20
OS Android
OS Version 7
React-native Version 0.51
Navigator Package ? React-Native-Navigation ( wix )
Use which linking package method ? Both manual and automatic

Current behavior

TypeError: Cannot read property ‘brand’ of undefined

This error is located at: in AuthPage (created by Connect(AuthPage)) in Connect(AuthPage) (at Navigation.js:83) in Provider (at Navigation.js:82) in _class2 (at renderApplication.js:35) in RCTView (at View.js:112) in View (at AppContainer.js:102) in RCTView (at View.js:112) in View (at AppContainer.js:122) in AppContainer (at renderApplication.js:34)

Code :

import DeviceInfo from ‘react-native-device-info’; … render() { console.log(DeviceInfo.getBrand()); }

Files linked :

MainApplication.java

package com.barberandroid;

import android.app.Application;


import com.reactnativenavigation.NavigationApplication;
import com.facebook.react.ReactApplication;
import com.learnium.RNDeviceInfo.RNDeviceInfo;
//import com.reactnativenavigation.NavigationReactPackage;
import com.oblador.vectoricons.VectorIconsPackage;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;

import java.util.Arrays;
import java.util.List;

public class MainApplication extends NavigationApplication {

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
	@Override
	public boolean getUseDeveloperSupport() {
	  return BuildConfig.DEBUG;
	}

	@Override
	protected List<ReactPackage> getPackages() {
	  return Arrays.<ReactPackage>asList(
			new MainReactPackage(),
			new RNDeviceInfo(),
			new VectorIconsPackage()
	  );
	}
  };

  @Override
  public ReactNativeHost getReactNativeHost() {
	return mReactNativeHost;
  }

  @Override
  public void onCreate() {
	super.onCreate();
	SoLoader.init(this, /* native exopackage */ false);
  }

  @Override
  public boolean isDebug() {
		return BuildConfig.DEBUG;
	}

  @Override
  public List<ReactPackage> createAdditionalReactPackages() {
		return null;
	}
}

setting.gradle

rootProject.name = 'barberAndroid'

include ':react-native-device-info'
project(':react-native-device-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-device-info/android')

include ':react-native-vector-icons'
project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')

include ':react-native-navigation'
project(':react-native-navigation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-navigation/android/app')


include ':app'

Build.gradle

android {
	compileSdkVersion 25
	buildToolsVersion "25.0.1"

defaultConfig {

applicationId "com.barberandroid"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
	abiFilters "armeabi-v7a", "x86"
}
...
dependencies {
	compile project(':react-native-device-info')
	compile project(':react-native-vector-icons')
	compile project(':react-native-navigation')
	compile fileTree(dir: "libs", include: ["*.jar"])
	compile "com.android.support:appcompat-v7:23.0.1"
	compile "com.facebook.react:react-native:+"  // From node_modules
}

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 3
  • Comments: 16

Most upvoted comments

This issue is wrong. To fix this problem add the library to your MainApplication.java: https://github.com/wix/react-native-navigation/issues/2599

Like the original poster, I am using android and linking has been done correctly. Also, NOT using expo.

I suggest for all future commenters:

  1. Please do not post that you have fixed it by linking correctly. The problem is that it isn’t fixed (for the rest of us) by linking correctly. Congratulations you are luckily not affected by this issue.

  2. Please do not post that you have fixed it in iOS, this is an android issue. As labelled.

Getting the same issue.

Have checked and rechecked all linking has been done (automatically, and then manually x 10)

Have deleted all build dirs (android/build & android/app/build) have deleted node_modules and re-run yarn.

The issue persists. Now looking for other plugins.

@machour Tnx ro reply my question. I reseted cache of my packager by npm clean cache and run cd android && ./gradlew clean && cd .. && react-native run-android but dosen’t work. this time, error is : TypeError: undefined is not an object ( evaluating RNDeviceInfo.brand)

Removed all “+1” and iOS related comments, to make this issue readable again.