问题
Unhandled JS Exception: Invariant Violation: requireNativeComponent: "AIRMap" was not found in the UIManager.
This error is located at: in AIRMap (at MapView.js:760) in MapView (at App.js:25) in RCTView (at View.js:43) in App (at renderApplication.js:32) in RCTView (at View.js:43) in RCTView (at View.js:43) in AppContainer (at renderApplication.js:31)
how to fix this error in react native ios ?
回答1:
Add to ios/YOUR_PROJECT_NAME/AppDelegate.m
@import GoogleMaps; //add this line if you want to use Google Maps
and
[GMSServices provideAPIKey:@"_YOUR_API_KEY_"]; // add this line using the api key obtained from Google Console
回答2:
I had this error also, and i fixed in this way:
- In your project, go to package.json
- At dependencies react native maps should be like this: "react-native-maps": "https://github.com/react-community/react-native-maps.git"
- Go to terminal/cmd and run npm-install
Dont forget to link: "react-native link react-native-maps"
Then: react-native run-ios/android
Because there is only one person that is allowed to publish at npm, we should use Git for the latest updates etc.
回答3:
/*----------------Install----------------*/
npm install react-native-maps --save
/*----------------Get a Google Maps API key----------------*/
/*----------------Write this in Pod file----------------*/
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target '_YOUR_PROJECT_TARGET_' do
rn_path = '../node_modules/react-native'
rn_maps_path = '../node_modules/react-native-maps'
# See http://facebook.github.io/react-native/docs/integration-with-existing-apps.html#configuring-cocoapods-dependencies
pod 'yoga', path: "#{rn_path}/ReactCommon/yoga/yoga.podspec"
pod 'React', path: rn_path, subspecs: [
'Core',
'CxxBridge',
'DevSupport',
'RCTActionSheet',
'RCTAnimation',
'RCTGeolocation',
'RCTImage',
'RCTLinkingIOS',
'RCTNetwork',
'RCTSettings',
'RCTText',
'RCTVibration',
'RCTWebSocket',
]
# React Native third party dependencies podspecs
pod 'DoubleConversion', :podspec => "#{rn_path}/third-party-podspecs/DoubleConversion.podspec"
pod 'glog', :podspec => "#{rn_path}/third-party-podspecs/glog.podspec"
# If you are using React Native <0.54, you will get the following error:
# "The name of the given podspec `GLog` doesn't match the expected one `glog`"
# Use the following line instead:
#pod 'GLog', :podspec => "#{rn_path}/third-party-podspecs/GLog.podspec"
pod 'Folly', :podspec => "#{rn_path}/third-party-podspecs/Folly.podspec"
# react-native-maps dependencies
pod 'react-native-maps', path: rn_maps_path
pod 'react-native-google-maps', path: rn_maps_path # Remove this line if you don't want to support GoogleMaps on iOS
pod 'GoogleMaps' # Remove this line if you don't want to support GoogleMaps on iOS
pod 'Google-Maps-iOS-Utils' # Remove this line if you don't want to support GoogleMaps on iOS
end
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'react-native-google-maps'
target.build_configurations.each do |config|
config.build_settings['CLANG_ENABLE_MODULES'] = 'No'
end
end
if target.name == "React"
target.remove_from_project
end
end
end
/*----------------Write this in AppDelegate .m----------------*/
@import GoogleMaps
In didFinishLaunchingWithOptions method
[GMSServices provideAPIKey:@"_YOUR_API_KEY_"];
/*----------------Now rut it with simulator or iOS device----------------*/
/*----------------
for more you can take reference of this :
https://github.com/react-community/react-native-maps
----------------*/
来源:https://stackoverflow.com/questions/51318063/how-to-fixairmap-was-not-found-in-the-uimanager-error-in-react-native