Ошибка: ноль не является объектом (оценивает "C.State") <unknown>index.android.bundle - PullRequest
0 голосов
/ 30 января 2019

Я новичок в React-Native.Я интегрировал свое существующее нативное Android-приложение с нативным.Собственная часть реагирования после запуска приложения показывает эту ошибку:

null не является объектом (оценивает 'C.State') unknown index.android.bundle

Вот снимок экрана с ошибкой: Снимок экрана с сообщением об ошибке

Я знаю, что это сообщение об ошибке появляется каждый раз, когда я использую реагировать на навигацию и реакции-нативный-жест-обработчик .

Вот код для файла package.json:

{
  "name": "Demo",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "react": "16.6.3",
    "react-native": "^0.58.3",
    "react-native-gesture-handler": "^1.0.15",
    "react-navigation": "^3.1.4"
  },
  "devDependencies": {
    "babel-core": "^7.0.0-bridge.0",
    "babel-jest": "24.0.0",
    "jest": "24.0.0",
    "metro-react-native-babel-preset": "0.51.1",
    "react-test-renderer": "16.6.3"
  },
  "jest": {
    "preset": "react-native"
  }
}

Вот нативное действие, которое делает реагирующий нативныймодуль:

public class MyReactActivity extends Activity implements DefaultHardwareBackBtnHandler {
private ReactRootView mReactRootView;
private ReactInstanceManager mReactInstanceManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mReactRootView = new ReactRootView(this);
    mReactInstanceManager = ReactInstanceManager.builder()
            .setApplication(getApplication())
            .setBundleAssetName("index.android.bundle")
            .setJSMainModulePath("index.android")
            .addPackage(new MainReactPackage())
            .setUseDeveloperSupport(BuildConfig.DEBUG)
            .setInitialLifecycleState(LifecycleState.RESUMED)
            .build();
    Bundle initialProps = new Bundle();
    String str = MainActivity.getMovieID();
    initialProps.putString("movie_id", str);
    mReactRootView.startReactApplication(mReactInstanceManager, "AwesomeProject", initialProps);

    setContentView(mReactRootView);
}

Соблюдайте index.android.bundle, написанный в приведенном выше коде.

Также перед запуском приложения я запускаю эту команду для разрешения Невозможно загрузить скрипт из активовindex.android.bundle

реактивный пакет --platform android --dev false - входной файл index.js - выходные данные android / app / src / main /assets / index.android.bundle --assets-dest android / app / src / main / res

Здесь также обратите внимание, что некоторыеЧто-то делается на index.android.bundle

Не могу найти ничего, связанного с этой ошибкой.Любая помощь будет оценена.Спасибо.

1 Ответ

0 голосов
/ 10 февраля 2019

У меня была похожая проблема, что я сделал, чтобы ее исправить, это было прочитать документацию React Navigation, на этой странице это мое решение:

https://reactnavigation.org/docs/en/getting-started.html

После этого, если у вас есть ошибка в вашем файле settings.gradle, которая говорит что-то вроде этого:

FAILURE: сборка не удалась с исключением.

  • Где:

Файл настроек 'C: \ PATH \ TO \ YOUR \ PROYECT \ android \ settings.gradle' строка: 3 ...

В вашем файле settings.gradle измените эти символы"\" для этого "/" в строке, где вы видите это: '.. \ node_modules \ реагировать-нативный-жест-обработчик \ android'

И это все, надеюсь, я смог помочь...

...