I am trying to run a react-native app on android emulator, but I am getting an error like
Error calling Appregistry.runApplication
AVD: 'Nexus_5X_API_23(AVD) - 6.0 OS:Windows 10
Please help on this?
I am trying to run a react-native app on android emulator, but I am getting an error like
Error calling Appregistry.runApplication
AVD: 'Nexus_5X_API_23(AVD) - 6.0 OS:Windows 10
Please help on this?
I had almost the same problem you currently have a few days ago. For me it was a real device.
From all my research, the solution that worked for me is the following :
When you launch your app by typing react-native run-android
, the error appears.
So, reach your directory containing "adb.exe" ( for me it was C:\Users\username\AppData\Local\Android\Sdk\platform-tools\ )
open a terminal from here. And type adb reverse tcp:8081 tcp:8081
Then, by reloading the app on the phone, it should work.
I hope this will help you !! ( if not, shame on me )
Cheers ;)
EDIT :
I've find a more convenient solution to solve this problem.
When you launch your "react-native run-android" you might have a comment saying "adb is not recognized as internal or external command..."
Well, instead of manually using the adb command, you can add an environment variable leading to the adb.exe.
Just get to the "Control Panel" > "System and Security" > "System" > "Advanced System Settings".
From here, click on "Environment Variables". Search for the "Path" variable in the "System Variables" section. Click on it and press the "Edit" button.
There you can add a new path to this variable. Just click the "New" button and write the adb.exe path. For exemple C:\Users\username\AppData\Local\Android\Sdk\platform-tools\
(For the oldest versions of Windows, you'll have to add ";C:\Users\username\AppData\Local\Android\Sdk\platform-tools\" to the content.)
This is it, now the adb reverse tcp:8081 tcp:8081
command will be ran automatically upon building.
Hope this will even more helps you !
I had the same issue, my fix was to run
$ react-native start
in the background then run
$ react-native run-android
According to me this error comes when:
1) You did not run the packager at the right place i.e, you hit the wrong folder to run react-native packager so just navigate to your project's directory and run react-native start
.
2) when you code something wrong with respect to Appregistry module.
3) Shutdown everything Xcode, packager, simulator etc and restart it again.
4) From the error one thing strikes in my mind is the name of the module
AppRegistry.registerComponent('AppName', () => componentName)
matches with the @"AppName" on your AppDelegate.m on the call for
[[RCTRootView alloc] initWithBundleUrl:...
moduleName:@"AppName"
launchOptions:...
5) As we are using react's component so we need to give the first character of our class name with caps on.
6) Let's see what's wrong in index.android.js
and index.ios.js
Cheers :)
Finally, I got it working.I created a new AVD
Nexus6 API 23
.Earlier I was trying with Nexus5x API 23.Thanks all
I had same problem. It occurs that McAffee was on port 8081 and block packager. My solution:
react-native start --port your_port
In android emulator, Command + M show dev menu, click on "Dev Settings" and then click on "Debug server host and port" and set it to your_ip:your_port.
Then
react-native run-android
In my case (after, of course, going through everything I could find here and elsewhere), I realized I had turned my WiFi off on my phone...doesn't work like that! Hope it helps someone
I had the same issue and was able to resolve it by setting my local computer as the debug server in the android emulator. Open the android emulator, Command + M
to bring up a menu, then click on "Dev Settings" and then click on "Debug server host and port" and set it to 127.0.0.1:8081. Then from within you project directory run react-native run-android
. I hope this helps.
Make sure that port 8081 is available. In my case One of my services is running on Port 8081(tomcat webserver).
I was having the exact same issue (because this is a very generic message) but the problem was different. In my case it was a newly created project, the emulator wasn't working but a real device did work.
My problem was the limit of watchers inotify
can handle on Linux by default, which is a Linux kernel subsystem that acts to extend filesystems to notice changes to the filesystem, and report those changes back to applications and it's widely used, including android studio and react native; by the time I was trying to execute react-native run-android
all of the watchers were allocated on my system, causing the process to fail on this same message.
To change the max amount of watchers inotify can handle, you need to edit the file sysctl.conf
, which will be usually located at /etc/sysctl.conf
or /etc/sysctl.d/custom_name.conf
and add the following line:
fs.inotify.max_user_watches = 5242881
After writing the file you need to execute sysctl -p filename.conf
where 'filename.conf' is the path and name wherever you saved the .conf file for sysctl. Once changes are applied everything should work as expected.
I too had the same problem. I solved the problem to run on real device.
As told by Mr Jedi, McAffee blocked the port 8081. So I have modified Project-Folder>\node_modules\react-native\local-cli\runAndroid\runAndroid.js file's function from
function tryRunAdbReverse(device) {
try {
const adbPath = getAdbPath();
const adbArgs = ['reverse', 'tcp:8081', 'tcp:8081'];
to
function tryRunAdbReverse(device) {
try {
const adbPath = getAdbPath();
const adbArgs = ['reverse', 'tcp:8081', 'tcp:3040'];
and started the application on
react-native start --port 3040
For me I just needed to add the platform tools to my Path environment variable so that react-native can start the adb server.
I was getting:
'adb' is not recognized as an internal tool or program
To fix this I added the following to my Path
environment variable.
C:\Users\<Username>\AppData\Local\Adnroid\sdk\platform-tools
Then running react-native run-android
worked!
I know this question has been given so many answers but, I think it's worth it adding my solution, hope this helps someone out there.
In my case the problem was from my virtual machine, although I didn't investigate but by creating a new virtual device the app ran smoothly with no problem.
So just create a new virtual device. :)
I searched for a solution for my registry error for a week and tried all these solutions, and all that was missing was I needed to add in my app.json file under expo:
"platforms": [
"ios",
"android",
"web"
],
So, if all else fails, try to add this into your expo.