diff --git a/Libraries/Image/Image.android.js b/Libraries/Image/Image.android.js
index 7b055780f0..75c722fa4d 100644
--- a/Libraries/Image/Image.android.js
+++ b/Libraries/Image/Image.android.js
@@ -113,6 +113,14 @@ var Image = React.createClass({
render: function() {
var source = resolveAssetSource(this.props.source);
+
+ // As opposed to the ios version, here it render `null`
+ // when no source or source.uri... so let's not break that.
+
+ if (source && source.uri === '') {
+ console.warn('source.uri should not be an empty string');
+ }
+
if (source && source.uri) {
var isNetwork = source.uri.match(/^https?:/);
invariant(
diff --git a/Libraries/Image/Image.ios.js b/Libraries/Image/Image.ios.js
index 48fcb278ba..59084721e4 100644
--- a/Libraries/Image/Image.ios.js
+++ b/Libraries/Image/Image.ios.js
@@ -19,6 +19,7 @@ var NativeModules = require('NativeModules');
var PropTypes = require('ReactPropTypes');
var React = require('React');
var ReactNativeViewAttributes = require('ReactNativeViewAttributes');
+var View = require('View');
var StyleSheet = require('StyleSheet');
var StyleSheetPropType = require('StyleSheetPropType');
@@ -165,6 +166,11 @@ var Image = React.createClass({
var {width, height} = source;
var style = flattenStyle([{width, height}, styles.base, this.props.style]) || {};
+ if (source.uri === '') {
+ console.warn('source.uri should not be an empty string');
+ return ;
+ }
+
var isNetwork = source.uri && source.uri.match(/^https?:/);
var RawImage = isNetwork ? RCTNetworkImageView : RCTImageView;
var resizeMode = this.props.resizeMode || (style || {}).resizeMode || 'cover'; // Workaround for flow bug t7737108
diff --git a/Libraries/Image/RCTImageLoader.m b/Libraries/Image/RCTImageLoader.m
index 50040c95fb..7a3c235a26 100644
--- a/Libraries/Image/RCTImageLoader.m
+++ b/Libraries/Image/RCTImageLoader.m
@@ -95,6 +95,10 @@ RCT_EXPORT_MODULE()
progressBlock:(RCTImageLoaderProgressBlock)progressBlock
completionBlock:(RCTImageLoaderCompletionBlock)completionBlock
{
+ if ([imageTag isEqualToString:@""]) {
+ RCTLogWarn(@"source.uri should not be an empty string ");
+ return nil;
+ }
NSURL *requestURL = [RCTConvert NSURL:imageTag];
id loadHandler = [self imageURLLoaderForRequest:requestURL];
if (!loadHandler) {