#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 из одного из мест, где он существует, чтобы мне не приходилось каждый раз вручную создавать этот файл?