React-Native:无法在Android设备上的发布模式下显示远程图像

时间:2019-05-06 21:32:37

标签: android image react-native

im在我的android设备上运行一个简单的react-native应用程序(三星9,Android 9,API 28),因此在调试模式下,使用以下命令行即可正常工作:

react-native run-android

这是结果:

https://i.imgur.com/KUmkaIo.png

但在释放模式(react-native run-android --variant=release)下,图片未显示:

https://i.imgur.com/UPiv16j.png

我的简单代码:

export default class App extends Component {
  render() {
    return (
      <View style={styles.container}>
      <Image source={ {uri:'http://i.imgur.com/GRIZj68.png'} } style={{width:200,height:200} } />
      <Text>HOLA</Text>  
      </View>
    );
  }
}

请帮忙!

2 个答案:

答案 0 :(得分:1)

Android pie(9)不允许渲染非https图像,因此您必须将http请求更改为https或在networkSecurityConfig应用程序标签中设置Manifest,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config">
    </application>
</manifest>

然后,您现在必须在xml文件夹中创建一个名为network_security_config的文件,就像在清单中命名该文件一样,从那里开始,文件内容应像这样,以启用所有不加密的请求:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>

来源:https://developer.android.com/training/articles/security-config

答案 1 :(得分:0)

我们遇到了崩溃和开发中的问题,我们的图标没有被写出并显示为 images_homeactive 。这导致 react-native-navigation 使我们的应用崩溃

这是在我们升级到compileSDKVersion = 28时发生的。

Starting with Android 9 (API level 28), cleartext support is disabled by default

this prevents your application from connecting to the React Native packager. The changes below allow cleartext traffic in debug builds.

../app/src/main/AndroidManifest.xml
<application
    ...
    android:usesCleartextTraffic="${isDebug}" tools:targetApi="28">

../android/app/build.gradle
buildTypes {
    release {
        ...
        manifestPlaceholders = [isDebug:false]
    }
    debug {
        ...
        manifestPlaceholders = [isDebug:true]
    }
}

非常感谢偶然发现艾哈迈德的回答。 希望这对某人有帮助。