Эта проблема относится к Android.
Мы недавно перенесли наш реактивный проект из Экспо в рабочий процесс . Однако у нас есть проблема, из-за которой изображения не загружаются при запуске встроенного файла apk.
При отладке на эмуляторе или устройстве с использованием react-native android
все работает нормально. Однако на встроенном apk изображения просто не появляются.
Наша сборка выполняется следующим образом
react-native bundle --platform android /
--dev false /
--entry-file index.js
--bundle-output android/app/src/main/assets/app.bundle
--assets-dest android/app/src/main/res
android/gradlew -p android clean
android/gradlew -p android assembleRelease
Я вижу, что первый шаг связывает наши изображения в следующую директорию
android/app/src/main/res/drawable-mdpi
Структура проекта выглядит следующим образом
index.js
App.js
ios/
android/
app/
assets/
package.json
images/
image01.png
image02.png
screens/
MyScreen.js
app/assets/package.json
, что позволяет нам избегать абсолютных путей, содержит
{
"name": "@assets"
}
и в MyScreen. js мы имеем , в методе render()
<Image source={require('@assets/images/image01.png')} />
Распаковка встроенного apk (app-release.apk
) Я вижу, что на изображения ссылаются в файле MANIFEST.MF
/release/app-release/META-INF
примерно так
Name: res/drawable-mdpi-v4/app_assets_images_image01.png
SHA-256-Digest: [BLAH]
Name: res/drawable-mdpi-v4/app_assets_images_image02.png
SHA-256-Digest: [BLAH]
в пределах release/app-release/res/drawable-mdpi-v4
изображения присутствуют и имеют то же имя, что и манифест.
Так что я совершенно не понимаю, почему они делают не отображается при запуске apk на устройстве.
Это не редкая проблема, и есть несколько других проблем переполнения стека в этом ключе, однако я прошел через все из них, и ни одно из предложенных решений не работает для нас.
Версия Gradle = 5. 6,3
RN версия = 61,5