React-Native: не удается отобразить удаленные изображения в режиме выпуска на устройстве Android - PullRequest
1 голос
/ 07 мая 2019

Я запускаю простое приложение на своем Android-устройстве (samsung 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 ]

3 голосов
/ 07 мая 2019

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

0 голосов
/ 27 июня 2019

У нас были сбои и проблемы в процессе разработки, поскольку наши значки не записывались и выглядели как images_homeactive .Это вызвало реагировать на родную навигацию , чтобы вызвать сбой нашего приложения

Это произошло, когда мы обновились до compileSDKVersion = 28.

Начиная с Android 9 (уровень API 28), поддержка открытого текста отключена по умолчанию

, что предотвращает подключение вашего приложения к упаковщику React Native.Изменения, приведенные ниже, разрешают трафик открытого текста в отладочных сборках.

../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]
    }
}

Так что благодарны наткнуться на ответ Ахмеда.Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...