Почему мои собственные модули не найдены в производственной сборке JS Engine?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Почему мои собственные модули не найдены в производственной сборке JS Engine?

Сообщение Anonymous »

Я разрабатываю свои первые собственные модули для iOS и Android. На iOS у меня проблем нет. На Android девелоперская сборка работает нормально. Однако, когда я собираю производственную сборку, приложение вылетает. Я думаю, это связано с этой ошибкой в ​​adb logcat:

Код: Выделить всё

2024-12-08 20:49:20.531 29294-29339 ReactNativeJS           com.identafly.preview                E  Error: Cannot find native module 'BoundingBox', js engine: hermes
2024-12-08 20:49:20.537 29294-29340 AndroidRuntime          com.identafly.preview                E  FATAL EXCEPTION: mqt_native_modules
Process: com.identafly.preview, PID: 29294
com.facebook.react.common.JavascriptException: Error: Cannot find native module 'BoundingBox', js engine: hermes, stack:
requireNativeModule@1:688911
Чем могут отличаться пакеты разработки и производства в способе импорта содержимого моего Android:

Код: Выделить всё

// expo-module.config.json
{
"platforms": ["ios", "tvos", "android", "web"],
"ios": {
"modules": ["BoundingBoxModule"]
},
"android": {
"modules": ["expo.modules.boundingbox.BoundingBoxModule"]
}
}
который ссылается на мой уровень модуля JS:

Код: Выделить всё

// modules/bounding-box/index.ts
import { type BoundingBoxProps } from './src/BoundingBox.types';
// Import the native module. On web, it will be resolved to BoundingBox.web.ts
// and on native platforms to BoundingBox.ts
import BoundingBoxModule from './src/BoundingBoxModule';

const drawBoundingBox = (props?: BoundingBoxProps) => {
if (
BoundingBoxModule &&
typeof BoundingBoxModule.drawBoundingBox === 'function'
) {
BoundingBoxModule.drawBoundingBox(props?.boundingBox, props?.color);
} else {
console.error('drawBoundingBox method not found');
}
};

export { BoundingBoxProps, drawBoundingBox };
и нативный код требует:

Код: Выделить всё

// modules/bounding-box/src/BoundingBoxModule.ts
import { requireNativeModule } from 'expo-modules-core';

// It loads the native module object from the JSI or falls back to
// the bridge module (from NativeModulesProxy) if the remote debugger is on.
export default requireNativeModule('BoundingBox');
Есть ли какая-то разница между пакетами JS для разработки и разработки? Что-то еще?


Подробнее здесь: https://stackoverflow.com/questions/792 ... tion-build
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»