Ошибка: связывание не удалось: нарушение инварианта: неверное разрешение актива

Я получаю это при попытке загрузить приложение с устройства Android (1+ 5t)

error: bundling failed: Invariant Violation: invalid asset resolution
    at invariant (~/project/node_modules/metro/node_modules/fbjs/lib/invariant.js:40:15)
    at ModuleResolver._getFileResolvedModule (~/project/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:175:9)
    at ModuleResolver.resolveDependency (~/project/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:116:19)
    at ResolutionRequest.resolveDependency (~/project/node_modules/metro/src/node-haste/DependencyGraph/ResolutionRequest.js:49:18)
    at DependencyGraph.resolveDependency (~/project/node_modules/metro/src/node-haste/DependencyGraph.js:218:16)
    at Object.resolve (~/project/node_modules/metro/src/lib/transformHelpers.js:141:30)
    at dependencies.map.result (~/project/node_modules/metro/src/DeltaBundler/traverseDependencies.js:373:31)
    at Array.map (<anonymous>)
at resolveDependencies (~/project/node_modules/metro/src/DeltaBundler/traverseDependencies.js:369:18)
at ~/project/node_modules/metro/src/DeltaBundler/traverseDependencies.js:188:33
BUNDLE  [android, dev] ./index.js ░░░░░░░░░░░░░░░░ 0.0% (0/1), failed.

Пытался:

- react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
- react-native start --reset-cache
- rm -rf node_module & yarn install

а это - не сработало

Любая помощь будет оценена

2 ответа

Решение

Исправить : удалить '.ios.' вне имени изображения, так как мое приложение в настоящее время работает только на ios, у меня были некоторые остатки в именах некоторых изображений, таких как 'welcome@2.ios.png' - так что при работе на android, реагировать на родной не удалось найти какие-либо ресурсы

когда вы используете React Native Platform Api (https://reactnative.dev/docs/platform), если у вас есть 2 файла в папке ресурсов для отображения другого пользовательского интерфейса, один для Android и один для Ios, когда вы вызываете свое изображение, вы должны удалите тип ОС внутри имени вашего файла.

Я имею в виду, buttonIcon.android.png || buttonIcon.ios.png => buttonIcon.png

React Native Platform API сделает переключение.

бывший :

var displayShareButton = () => {if(data != undefined && Platform.OS === "android") { return(<TouchableOpacitystyle={styles.shareButton}onPress={() => shareSomething()}>< Стиль изображения={styles.shareImage} источник={требуется("../assets/buttonIcon.png")}/> ) } }

Надеюсь, это исправит ошибку :)

Другие вопросы по тегам