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>
);
}
}
请帮忙!
答案 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
../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]
}
}
非常感谢偶然发现艾哈迈德的回答。 希望这对某人有帮助。