I'm trying to create native Java package for my simple React Native application.
I created project with react-native init, added some screens and react-navigation.
After that I followed The Toast Module.
My phone is connected via USB and every React code runs perfectly but Java code not.
In one screen in render() method I added simple
import React, { Component } from "react"
import { NativeModules } from "react-native"
export default class TestScreen extends Component {
render() {
console.log(NativeModules, NativeModules.ToastModule)
return (
// something
)
}
}
In result of this code I got object with all native modules provided by React Native and undefined value for my personal module.
I go to file android/app/src/main/java/com/myproject/MainApplication.java and replace getPackages() method into this
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList( // Disable all modules for example
// new MainReactPackage(),
// new ManagerPackage()
);
}
Normally both packages are uncommented.
After that I tried to run application on my phone
$ react-native run-android --deviceId MYDEVICEID
Some part of console output is
Building the app...
BUILD SUCCESSFUL in 8s
52 actionable tasks: 2 executed, 50 up-to-date
Application starts but I got same result for console.log(...) - object and undefined values.
When I executed
$ cd android/
$ ./gradlew clean
$ cd ..
$ react-native run-android --deviceId ...
I got error that file under app/build/outputs/apk/app-debug.apk not exists.
When I followed this answer I also had to copy android/app/build/outputs/apk/debug/app-debug.apk file into android/app/build/outputs/apk/app-debug.apk.
It's not solves my problem - my native module is not working when I uncomment my package in MainApplication.java file and also I cannot disable MainReactPackage.
My question is: how to successfully can I rebuild my project (including Java files for Android build)?