Приложение React Native для Android неправильно загружает пакет JS

#android #react-native #gradle #react-native-android

Вопрос:

У меня проблема с комплектацией JS в моем приложении RN 0.63.3 при сборке для Android.

У меня есть варианты release , debug , dev и alphaRelease . debug работает, как ожидалось, и подключается к серверу пакетов, но другие вызывают сбой/белый экран при запуске приложения.

Но если я запущу ./gradlew assembleAlphaRelease и установлю приложение, оно вылетит, сообщив мне, что файл app/src/main/assets/index.android.bundle не может быть найден. (То же самое и с release и dev ). Однако я вижу, что он выполняет этот bundleJsAndAssets шаг.

Когда я ищу index.android.bundle после сборки, я вижу эти файлы, которые все имеют одинаковое содержимое, но ни один из них не найден запущенным приложением.

 ./app/build/generated/assets/react/alphaRelease/index.android.bundle
./app/build/intermediates/merged_assets/alphaRelease/out/index.android.bundle
./app/build/intermediates/merged_assets/alphaRelease/mergeAlphaReleaseAssets/out/index.android.bundle
./app/build/intermediates/assets/alphaRelease/index.android.bundle
 

Если я выполню команду ниже, она появится index.android.bundle в нужном месте, и приложение будет работать так, как ожидалось после восстановления.

 npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle
 

Я предполагаю, что мое приложение должно загрузить JS из файла в ./app/build/generated/assets/react/alphaRelease/index.android.bundle ?

Он уже может без проблем загружать ресурсы из ./app/build/generated/res/react/alphaRelease/drawable* пакета JS, но не из него.

Я пробовал различные настройки в project.ext.react разделе build.gradle , но, похоже, ничего не помогает. Он действует так же, если я установлю jsBundleDirAlphaRelease: "$buildDir/intermediates/assets/alphaRelease", и т. Д.

Итак: Как я могу заставить приложение загружать пакет JS из одного из мест, где он существует, чтобы мне не приходилось каждый раз вручную создавать этот файл?