React-native-firebase: Unable to resolve module `ReactNativeART`

Created on 25 Jul 2017  Â·  32Comments  Â·  Source: invertase/react-native-firebase

  1. Target Platform (e.g. iOS, Android): iOS
  2. Development Operating System (e.g. macOS Sierra, Windows 10): macOS Sierra
  3. Build tools (Xcode or Android Studio version, iOS or Android SDK version, if relevant): Xcode
  4. React Native version (e.g. 0.45.1): 0.46.4
  5. RNFirebase Version (e.g. 2.0.2): 2.0.4

Hi!
I've got a problem when I launch the app with RNFirebase configured.
this is the error that displays:

error: bundling failed: "Unable to resolve module ReactNativeART from /Users/risck/Documents/Projects/React-Native/Test/node_modules/react-native/Libraries/react-native/react-native-implementation.js: Module does not exist in the module map
This might be related to https://github.com/facebook/react-native/issues/4968
To resolve try the following:

  1. Clear watchman watches: watchman watch-del-all.
  2. Delete the node_modules folder: rm -rf node_modules && npm install.

    1. Reset packager cache: rm -fr $TMPDIR/react-* or npm start -- --reset-cache."

Obviously I've tried to launch all the command above.

Thanks for your help!
Regards

Most helpful comment

Okay, as mentioned before, this error gave me headaches for days. Anyway, here's the solution that finally worked for me:

  1. Add 'ART' after 'Core' to the Podfile's React entry.
  2. Close XCode, Simulator, and packager's terminal window.
  3. Clear and reinstall, like, everything. In my case, this included using a little gem called cocoapods-deintegrate. My terminal script for it looks like this:
watchman watch-del-all && 
rm -rf node_modules && 
rm -rf package-lock.json && 
rm -rf ios/build && 
rm -rf $TMPDIR/react-* && 
npm cache clear --force -s && 
npm cache verify && 
npm install && 
cd ios && 
sudo gem install cocoapods-deintegrate && 
sudo gem install cocoapods-clean && 
pod deintegrate && 
pod clean && 
rm -f Podfile.lock && 
pod install && 
pod update &&
cd .. && 
npm start -- --reset-cache
  1. Start XCode, run project, (hopefully) be as happy as I am.

All 32 comments

@Risck256 have you added the ART subspec to the React entry in your Podfile?

I've only insert the pods that are presents on the iOS Guide:
pod 'Firebase/Core'
pod 'RNFirebase', :path => '../node_modules/react-native-firebase'
pod 'Firebase/Messaging'
pod "Yoga", :path => "../node_modules/react-native/ReactCommon/yoga"
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'BatchedBridge', # Required For React Native 0.45.0+
'Core',

]
I need to insert 'ART' after 'Core'?

Yes, adding 'ART' after 'Core' will hopefully resolve the issue. You may need to add some other subspecs depending on what other libraries you're using in your application.

ok.
I will update you when I back from work.

thank you :)

Unfortunately, this solution does not work.

my Podfile:

``` pod "Yoga", :path => "../node_modules/react-native/ReactCommon/yoga"
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'BatchedBridge', # Required For React Native 0.45.0+
'Core',
'ART'
]

This isn't a problem with RNFirebase, more the dependancies and bundling of React. There seems to be a number of issues on Google on this issue: https://www.google.co.uk/search?q=react-native-implementation.js+unable+to+resolve&oq=react-native-implementation.js+unable+to+resolve.

What is your React version? Will close, but will help if we can.

I'm using these versions:

```
"react": "16.0.0-alpha.12",
"react-native": "0.45.1",
"react-native-firebase": "^2.0.4",

I solved by adding 'ART' in Podfile

Hi this doesn't work. Does any one have other solution ?

Same issue here. This solution doesn't work. I guess there is something wrong with "pod 'RNFirebase', :path => '../node_modules/react-native-firebase'". Does anyone have a solution?

Also seeing this same thing.

Please paste the Podfile

My Podfile before any firebase service :
pod 'Firebase/Core'
pod 'RNFirebase', :path => '../node_modules/react-native-firebase'
pod "Yoga", :path => "../node_modules/react-native/ReactCommon/yoga"
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'BatchedBridge',
'Core',
'ART'
]

Could you please paste your Podfile or show me how to add 'ART' in the Podfile?

After installed pod 'RNFirebase', :path => '../node_modules/react-native-firebase'
...
Installing RNFirebase (2.1.2)
Installing React (0.11.0)
...
[!] React has been deprecated

What does that mean?

@Risck256 and @MelodiiLy This is what my podfile looks like (just to be clear it DOES NOT WORK):

platform :ios, '9.0'

target 'someapp' do

  # Required by RNFirebase
  pod 'Firebase/Core'
  pod 'RNFirebase', :path => '../node_modules/react-native-firebase'

  pod 'Firebase/Auth'
  pod 'Firebase/Crash'
  pod 'Firebase/Database'
  pod 'Firebase/Messaging'
  pod 'Firebase/Storage'
  pod "Yoga", :path => "../node_modules/react-native/ReactCommon/yoga"
  pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'BatchedBridge', # Required For React Native 0.45.0+
    'Core',
    # 'ART' # tried this and it did not help
    # 'RCTImage',
    # 'RCTNetwork',
    # 'RCTText',
    # 'RCTWebSocket',
    # Add any other subspecs you want to use in your project
  ]
end

This is mine. This also crashes android target too :(
Uncomment the next line to define a global platform for your project
platform :ios, '8.0'

def sharedLibraries
pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons'
pod 'ReactNativeNavigation', :path => '../node_modules/react-native-navigation'
pod 'Firebase/Core'
pod 'RNFirebase', :path => '../node_modules/react-native-firebase'
pod 'Firebase/Crash'
pod 'Firebase/AdMob'
pod 'Firebase/Messaging'

pod "Yoga", :path => "../node_modules/react-native/ReactCommon/yoga"
pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'BatchedBridge', # Required For React Native 0.45.0+
    'Core',
    'ART',
    'RCTActionSheet',
    'RCTAnimation',
    'RCTAdSupport',
    'RCTGeolocation',
    'RCTImage',
    'RCTNetwork',
    'RCTPushNotification',
    'RCTSettings',
    'RCTText',
    'RCTVibration',
    'RCTWebSocket',
    'RCTLinkingIOS'
]

end

target 'OrantajReactNative' do
sharedLibraries
end

I have the same issue on android and iOS , try to add ART pod it doesn't work.
Any idea

Yes, same issue.

Any help? Thanks.

I had to use react-native link, but firebase ads not worked out.

I've tried, still the same issue :(

In my case, line: pod 'RNFirebase', :path => '../node_modules/react-native-firebase' seem to be a trouble maker, so start over without that line make it work

My podfile config:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'myApp' do
  # Pods for myApp

  target 'myAppTests' do
    inherit! :search_paths
    # Pods for testing
  end

  pod 'Firebase/Auth'
  pod 'Firebase/Core' 
  pod 'Firebase/Messaging'
  pod "Yoga", :path => "../node_modules/react-native/ReactCommon/yoga"
  pod 'React', :path => '../node_modules/react-native', :subspecs => [
  'BatchedBridge', # Required For React Native 0.45.0+
  'Core',
  ‘ART’
]

end

Run npm start -- --reset-cache after all.

I had the same issue. But i found out a temporary solution.

  1. This is my podfile config. You can notice that i DO NOT include pod 'RNFirebase', :path => '../node_modules/react-native-firebase'.

pod 'Firebase/Core'
pod 'Firebase/Auth'
pod 'Firebase/Database’
pod 'Firebase/Storage’
pod 'Firebase/AdMob'
pod "Yoga", :path => "../node_modules/react-native/ReactCommon/yoga"
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'BatchedBridge', # Required For React Native 0.45.0+
'Core',
‘ART’
]

2.pod install.

3.Open podfile again and include pod 'RNFirebase', :path => '../node_modules/react-native-firebase like this

pod 'Firebase/Core'
pod 'Firebase/Auth'
pod 'Firebase/Database’
pod 'Firebase/Storage’
pod 'Firebase/AdMob'
pod 'RNFirebase', :path => '../node_modules/react-native-firebase'
pod "Yoga", :path => "../node_modules/react-native/ReactCommon/yoga"
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'BatchedBridge', # Required For React Native 0.45.0+
'Core',
‘ART’
]

  1. pod install again.

This should work.

@althurzard That worked for me!

Seems like there's a valid workaround for those people who are experiencing issues, so I'm going to close this down.

@chrisbianca That's fine if this is closed but PLEASE update the install docs! Having to sift through GitHub issues to get RN modules working (because the docs are almost always incomplete) is one of my biggest frustrations with RN. Much appreciated!

@tmaly1980 We agree, don't worry, and we're working on ways to make the setup as painless as possible.

Unfortunately RN in itself is fragile and with multiple versions (most with breaking changes of various types) it's hard for module developers to keep up. Everybody has different setups, different combinations of modules and libraries, which means often a fix for one set of people doesn't work for others. This means we can't include everything in the documentation as it would become unwieldy, but we do add things that we know fix issues for large groups of people - see our FAQ / Troubleshooting sections.

We do do this in our spare time so if you ever spot documentation that is out of date or missing some detail, PRs are more than welcome!!

I've tried all solutions in this thread and I'm still get this ART issue. I'll let you know if I figure out what's different about my setup that could cause this...

@mtford90 could you solve it? banging my head against the wall for 2 days now..

Okay, as mentioned before, this error gave me headaches for days. Anyway, here's the solution that finally worked for me:

  1. Add 'ART' after 'Core' to the Podfile's React entry.
  2. Close XCode, Simulator, and packager's terminal window.
  3. Clear and reinstall, like, everything. In my case, this included using a little gem called cocoapods-deintegrate. My terminal script for it looks like this:
watchman watch-del-all && 
rm -rf node_modules && 
rm -rf package-lock.json && 
rm -rf ios/build && 
rm -rf $TMPDIR/react-* && 
npm cache clear --force -s && 
npm cache verify && 
npm install && 
cd ios && 
sudo gem install cocoapods-deintegrate && 
sudo gem install cocoapods-clean && 
pod deintegrate && 
pod clean && 
rm -f Podfile.lock && 
pod install && 
pod update &&
cd .. && 
npm start -- --reset-cache
  1. Start XCode, run project, (hopefully) be as happy as I am.

I have good news for you, as of last nights v3.0.2 release, react-native link is supported for iOS and Android so you no longer need to set up React, Yoga, react-native-firebase, etc as Pods. You do still need to have Firebase installed using pods as recommended by Google.

Check out the new installation instructions:

iOS: http://invertase.link/ios
Android: http://invertase.link/android

@skizzo works man ! thanks so much

This might be the new way to do it (add this line):
pod 'React-ART', :path => '../node_modules/react-native/Libraries/ART'

this happened when I added .babelrc file with

{
  "presets": ["@babel/preset-env"]
}

inside when I was setting up Jest according to this guide: redux writing tests
When I deleted .babelrc file my app built

Was this page helpful?
0 / 5 - 0 ratings

Related issues

joecaraccio picture joecaraccio  Â·  3Comments

jonaseck2 picture jonaseck2  Â·  3Comments

NordlingDev picture NordlingDev  Â·  3Comments

rtman picture rtman  Â·  3Comments

alizahid picture alizahid  Â·  3Comments