Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android Manifest not found during linking with rnpm phase #138

Closed
evanmrose opened this issue May 31, 2016 · 32 comments
Closed

Android Manifest not found during linking with rnpm phase #138

evanmrose opened this issue May 31, 2016 · 32 comments
Assignees

Comments

@evanmrose
Copy link

I ran ignite new app and got the following error:

`✔︎ Linking with rnpm
fs.js:584
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^

Error: ENOENT: no such file or directory, open 'dmx-native-mobile-redux/android/app/src/main/AndroidManifest.xml'
at Error (native)
at Object.fs.openSync (fs.js:584:18)
at Object.fs.readFileSync (fs.js:431:33)
at Object.insertInFile (/Users/erose2/.nvm/versions/node/v5.4.0/lib/node_modules/generator-react-native-ignite/utilities.js:21:27)
at performInserts (/Users/erose2/.nvm/versions/node/v5.4.0/lib/node_modules/generator-react-native-ignite/app/index.js:60:13)
at AppGenerator._updateAndroidManifest (/Users/erose2/.nvm/versions/node/v5.4.0/lib/node_modules/generator-react-native-ignite/app/index.js:328:7)
at ChildProcess. (/Users/erose2/.nvm/versions/node/v5.4.0/lib/node_modules/generator-react-native-ignite/app/index.js:378:18)
at emitTwo (events.js:87:13)
at ChildProcess.emit (events.js:172:7)
at maybeClose (internal/child_process.js:821:16)`

@GantMan GantMan added the bug label May 31, 2016
@GantMan
Copy link
Member

GantMan commented May 31, 2016

Checking on this now

@GantMan
Copy link
Member

GantMan commented May 31, 2016

I can't recreate this. Can you verify you have the latest rnpm?

image

Also, verify you have the latest released ignite. 0.3.1

@GantMan
Copy link
Member

GantMan commented May 31, 2016

Additionally, can you verify that your AndroidManifest file exists or does not exist in the directory it is looking?

@asndev
Copy link
Contributor

asndev commented Jun 1, 2016

Running into the same with:
rnpm 1.8.0
ignite 0.4.0

// reinstalling react-native-ignite fixed the problem.
( npm uninstall react-native-ignite && npm install -g react-native-ignite )

@GantMan
Copy link
Member

GantMan commented Jun 1, 2016

Hrmmm odd! @evanmrose - did you try re-installing ignite?

@hknd, what version was Ignite when you first installed it? Maybe this is an upgrade issue?

@asndev
Copy link
Contributor

asndev commented Jun 2, 2016

@GantMan my first version was prolly 0.3.x. I did an upgrade to 0.4.0 and then I encountered that error. (then I resolved it via uninstall+install)

@GantMan
Copy link
Member

GantMan commented Jun 2, 2016

thanks! It must have been some kind of upgrade limbo. I'll close this ticket for now. We'll revisit if we get anyone with this issue again.

@GantMan GantMan closed this as completed Jun 2, 2016
@Keksike
Copy link

Keksike commented Jun 6, 2016

I'm having the same problem.

Tried reinstalling, didn't help.

✔︎ Linking with rnpm
⠋ Linking with rnpmfs.js:549
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: ENOENT: no such file or directory, open 'my-app/android/app/src/main/AndroidManifest.xml'
    at Error (native)
    at Object.fs.openSync (fs.js:549:18)
    at Object.fs.readFileSync (fs.js:397:15)
    at Object.insertInFile (/usr/local/lib/node_modules/generator-react-native-ignite/utilities.js:21:27)
    at performInserts (/usr/local/lib/node_modules/generator-react-native-ignite/app/index.js:60:13)
    at AppGenerator._updateAndroidManifest (/usr/local/lib/node_modules/generator-react-native-ignite/app/index.js:328:7)
    at ChildProcess.<anonymous> (/usr/local/lib/node_modules/generator-react-native-ignite/app/index.js:378:18)
    at emitTwo (events.js:87:13)
    at ChildProcess.emit (events.js:172:7)
    at maybeClose (internal/child_process.js:821:16)

MuadDib:~ Keksike$ rnpm -V 1.8.0

MuadDib:~ Keksike$ npm --version 3.9.5

@GantMan
Copy link
Member

GantMan commented Jun 7, 2016

can you verify that the identified file exists? and at that path? my-app/android/app/src/main/AndroidManifest.xml

@chuntley
Copy link

chuntley commented Jun 7, 2016

Exact same issue here, the android folder does not exist.

It looks like ignite new does not perform the same project name validation as react-native init, causing the android build to fail silently.

For example, if you run ignite new my-app, this error will appear. If you run ignite new MyApp, it will succeed.

I hope that helps!

@GantMan
Copy link
Member

GantMan commented Jun 7, 2016

awesome! Thanks so much! We're on it.

@GantMan
Copy link
Member

GantMan commented Jun 7, 2016

@amrangaye
Copy link

Hi. I updated to the 1.0.1 version, and have rnpm at 1.8.0, but still getting the same error, even sticking to just alphanumeric characters in my project name. The file isn't present, nor are the dirs above it.

Thanks.

@GantMan
Copy link
Member

GantMan commented Jun 8, 2016

Hi @amrangaye So, you checked and the file/folders don't exist? There's our problem, so now we need to figure out why.

Can you please paste the path it's looking for, and also paste the path to your generated manifest file? You must have a manifest file generated somewhere under the android folder. I think identifying the difference here, we'll have the crux of the problem.

@amrangaye
Copy link

Sure. This is the path/error message:

Error: ENOENT: no such file or directory, open 'MyApp/android/app/src/main/AndroidManifest.xml

The android folder doesn't exist at all. Here is a list of dirs actually present in MyApp top level folder:

App Tests index.android.js npm-debug.log
README.md git_hooks index.ios.js package.json

Thanks.

@GantMan
Copy link
Member

GantMan commented Jun 8, 2016

ok, so something failed inside of generating the react native project at all. So the follow-up steps will fail.

Can you provide the contents of npm-debug.log as that file is only generated when an npm failure happens.

Additionally, can you attempt to build a new react-native project and verify that works?
react-native init MyApp2 if it fails, please let us know what the error was.

@amrangaye
Copy link

OK so I looked in npm-debug.log, and it seems the initial set of problems were wrong permissions in my ~/.npm dir. I corrected those, and the script makes it a lot further, before failing. However now when I look in the MyApp dir there is no npm-debug.log file - is there another way of checking the error logs? Yes, react-native init MyApp2 works fine. Below is the error log for ignite:

⠋ Linking with rnpmfs.js:584
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: ENOENT: no such file or directory, open 'MyApp/android/app/src/main/AndroidManifest.xml'
    at Error (native)
    at Object.fs.openSync (fs.js:584:18)
    at Object.fs.readFileSync (fs.js:431:33)
    at Object.insertInFile (/usr/local/Cellar/node/6.2.0/libexec/npm/lib/node_modules/generator-react-native-ignite/utilities.js:21:27)
    at performInserts (/usr/local/Cellar/node/6.2.0/libexec/npm/lib/node_modules/generator-react-native-ignite/app/index.js:60:13)
    at AppGenerator._updateAndroidManifest (/usr/local/Cellar/node/6.2.0/libexec/npm/lib/node_modules/generator-react-native-ignite/app/index.js:328:7)
    at ChildProcess.<anonymous> (/usr/local/Cellar/node/6.2.0/libexec/npm/lib/node_modules/generator-react-native-ignite/app/index.js:378:18)
    at emitTwo (events.js:100:13)
    at ChildProcess.emit (events.js:185:7)
    at maybeClose (internal/child_process.js:827:16)`

@GantMan
Copy link
Member

GantMan commented Jun 10, 2016

So, that file not existing is key. And the only way that file can not exist is if the react-native init MyApp is failing. My guess is that we're somehow swallowing that error, but until we find out how/what it is I can't really identify how to stop it.

The line that runs that inside ignite is this: https://github.com/infinitered/ignite/blob/master/ignite-generator/src/app/index.es#L193

As you can see we have stdio ignore for now, but in your personal node_module folder, you can turn int on, and see the feedback. I know that this goes pretty deep, but whatever is affecting ignite, might be affecting any React Native project you build.

@Keksike
Copy link

Keksike commented Jun 10, 2016

Btw, I am having this problem on OSX El Capitan. I was wondering if this might be an OSX specific problem?

@VansonLeung
Copy link

VansonLeung commented Jun 20, 2016

I am using El Capitan
Hitting the same issue

Neither /android nor /ios is found.

✔︎ Found react-native
✔︎ Found git
✔︎ Found rnpm
✔︎ Getting ready for guests
✔︎ Running React Native setup (~ 1 minute)
✔︎ Downloading latest Ignite files
✔︎ Copying Ignite goodies
create IgniteTest/README.md
create IgniteTest/package.json
create IgniteTest/index.ios.js
create IgniteTest/index.android.js
create IgniteTest/git_hooks/pre-commit/lint.sh
create IgniteTest/Tests/Compiler.js
create IgniteTest/Tests/mocha.opts
create IgniteTest/Tests/Reducers/LoginReducerTest.js
create IgniteTest/Tests/Sagas/LoginSagaTest.js
create IgniteTest/Tests/Sagas/StartupSagaTest.js
create IgniteTest/Tests/Setup.js
create IgniteTest/App/Actions/Creators.js
create IgniteTest/App/Actions/README.md
create IgniteTest/App/Actions/Types.js
create IgniteTest/App/Components/AlertMessageComponent.js
create IgniteTest/App/Components/FullButton.js
create IgniteTest/App/Components/ProgressiveImage.js
create IgniteTest/App/Components/README.md
create IgniteTest/App/Components/RoundedButton.js
create IgniteTest/App/Components/Styles/AlertMessageComponentStyle.js
create IgniteTest/App/Components/Styles/FullButtonStyle.js
create IgniteTest/App/Components/Styles/ProgressiveImageStyle.js
create IgniteTest/App/Components/Styles/README.md
create IgniteTest/App/Components/Styles/RoundedButtonStyle.js
create IgniteTest/App/Config/DebugSettings.js
create IgniteTest/App/Config/PushConfig.js
create IgniteTest/App/Config/ReactotronConfig.js
create IgniteTest/App/Config/README.md
create IgniteTest/App/Containers/AllComponentsScreen.js
create IgniteTest/App/Containers/APITestingScreen.js
create IgniteTest/App/Containers/DeviceInfoScreen.js
create IgniteTest/App/Containers/ListviewExample.js
create IgniteTest/App/Containers/LoginScreen.js
create IgniteTest/App/Containers/PresentationScreen.js
create IgniteTest/App/Containers/README.md
create IgniteTest/App/Containers/Styles/AllComponentsScreenStyle.js
create IgniteTest/App/Containers/Styles/APITestingScreenStyle.js
create IgniteTest/App/Containers/Styles/DeviceInfoScreenStyle.js
create IgniteTest/App/Containers/Styles/ListviewExampleStyle.js
create IgniteTest/App/Containers/Styles/LoginScreenStyle.js
create IgniteTest/App/Containers/Styles/PresentationScreenStyle.js
create IgniteTest/App/Containers/Styles/README.md
create IgniteTest/App/Containers/Styles/RootStyle.js
create IgniteTest/App/Containers/Styles/ThemeScreenStyle.js
create IgniteTest/App/Containers/Styles/UsageExamplesScreenStyle.js
create IgniteTest/App/Containers/ThemeScreen.js
create IgniteTest/App/Containers/UsageExamplesScreen.js
create IgniteTest/App/Fixtures/boise.json
create IgniteTest/App/Fixtures/README.md
create IgniteTest/App/Fixtures/toronto.json
create IgniteTest/App/I18n/I18n.js
create IgniteTest/App/Images/BG.png
create IgniteTest/App/Images/ignite_logo.png
create IgniteTest/App/Images/ir.png
create IgniteTest/App/Images/tile_bg.png
create IgniteTest/App/Images/top_logo.png
create IgniteTest/App/Images/top_logo@2x.png
create IgniteTest/App/Images/top_logo@3x.png
create IgniteTest/App/Lib/Utilities.js
create IgniteTest/App/Navigation/index.js
create IgniteTest/App/Navigation/NavButtons.js
create IgniteTest/App/Navigation/NavigationBar.js
create IgniteTest/App/Navigation/NavigationBarRouteMapper.js
create IgniteTest/App/Navigation/README.md
create IgniteTest/App/Navigation/Router.js
create IgniteTest/App/Navigation/Routes.js
create IgniteTest/App/Navigation/Styles/NavigationStyle.js
create IgniteTest/App/Reducers/index.js
create IgniteTest/App/Reducers/LoginReducer.js
create IgniteTest/App/Reducers/README.md
create IgniteTest/App/Reducers/WeatherReducer.js
create IgniteTest/App/Root.js
create IgniteTest/App/Sagas/GetCityWeatherSaga.js
create IgniteTest/App/Sagas/index.js
create IgniteTest/App/Sagas/LoginSaga.js
create IgniteTest/App/Sagas/StartupSaga.js
create IgniteTest/App/Services/Api.js
create IgniteTest/App/Services/ExamplesRegistry.js
create IgniteTest/App/Services/FixtureApi.js
create IgniteTest/App/Store/ImmutablePersistenceTransform.js
create IgniteTest/App/Store/Store.js
create IgniteTest/App/Themes/ApplicationStyles.js
create IgniteTest/App/Themes/Colors.js
create IgniteTest/App/Themes/Fonts.js
create IgniteTest/App/Themes/Images.js
create IgniteTest/App/Themes/index.js
create IgniteTest/App/Themes/Metrics.js
create IgniteTest/App/Themes/README.md
create IgniteTest/App/Themes/Transitions.js
✔︎ Installing Ignite dependencies (~30 seconds-ish)
✔︎ Linking with rnpm
⠋ Linking with rnpmfs.js:549
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^

Error: ENOENT: no such file or directory, open 'IgniteTest/android/app/src/main/AndroidManifest.xml'
at Error (native)
at Object.fs.openSync (fs.js:549:18)
at Object.fs.readFileSync (fs.js:397:15)
at Object.insertInFile (/usr/local/lib/node_modules/generator-react-native-ignite/utilities.js:21:27)
at performInserts (/usr/local/lib/node_modules/generator-react-native-ignite/app/index.js:60:13)
at AppGenerator._updateAndroidManifest (/usr/local/lib/node_modules/generator-react-native-ignite/app/index.js:328:7)
at ChildProcess. (/usr/local/lib/node_modules/generator-react-native-ignite/app/index.js:378:18)
at emitTwo (events.js:87:13)
at ChildProcess.emit (events.js:172:7)
at maybeClose (internal/child_process.js:818:16)

@GantMan
Copy link
Member

GantMan commented Jun 20, 2016

Does the file get created at all? Can you check for it now?

Also, can you do a normal react-native init SomeProject just fine?

@VansonLeung
Copy link

VansonLeung commented Jun 21, 2016

the file does not get created at all
but I ran react-native init Project is fine, all the files are created

@GantMan
Copy link
Member

GantMan commented Jun 21, 2016

this happens every time? @skellock thoughts on how to best track this down?

@VansonLeung - we can help create a branch version perhaps, that would be verbose in each step, rather than swallowing output. Maybe then, it would identify the problem.

@GantMan
Copy link
Member

GantMan commented Jun 21, 2016

make sure you have latest ignite npm i react-native-ignite -g and try again. If this fails, would you be open to a screen pairing session?

@skellock
Copy link
Contributor

I can reproduce like this:

mkdir -p ~/tmp
cd ~/tmp
ignite new Test
cd Test
ignite new Boom

When it can't find AndroidManifest.xml, it doesn't even have an ios or android directory.

react-native init fails, but we still put the ignite bootstrap files in there.

Should be able to fix this pretty easily.

Sorry for the inconvenience. This was a bit goofy to track down.

@skellock skellock reopened this Jun 21, 2016
@will-hart
Copy link

I was running into this issue on Win10 with cmder. There was no npm debug log. Running react-native init myapp gave me:

λ react-native init AppRN
   Looks like you installed react-native globally, maybe you meant react-native-cli?
   To fix the issue, run:
   npm uninstall -g react-native
   npm install -g react-native-cli

Doing this let ignite new run without error.

@GantMan
Copy link
Member

GantMan commented Jun 25, 2016

@will-hart - That's awesome info! @skellock I'm thinking of building this check into our CLI, thoughts on best way?

https://github.com/facebook/react-native/blob/8295d27a906f850cefd86321d212162cba7ef296/local-cli/wrong-react-native.js

@evanmrose
Copy link
Author

hey @GantMan any movement on this? I ran into another wonky issue:

__fbBatchedBridge is undefined

This led me to try to re-scaffold the app and start from scratch but I ran into this issue again.

@GantMan
Copy link
Member

GantMan commented Jun 27, 2016

I created a fresh project about an hour ago. Can you give it a go? I had no issue.

make sure you have everything upgraded/updated

@skellock
Copy link
Contributor

Sorry, just going through issues and I've missed this one.

@GantMan We could put that check into the cli if you wanted ya.

Something like this might do the trick:

const cmd = 'npm -s -g ls --depth=0' // lists top level global installed packages
const ohCrap = Shell.exec(cmd, { silent: true }).stdout.indexOf('react-native@') >= 0

I mean, we'll only present the same error that react-native does anyway... but sooner. I guess that's a little better though.

@GantMan
Copy link
Member

GantMan commented Jul 29, 2016

yeah, there's a good bit of checks/balances we can work in to try to help people with borked installs etc. Would be cool to get other team members to maybe PR that.

@skellock
Copy link
Contributor

Upgraded to #276. Thanks all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants