react-nativeでrun-androidをするときにはまったこと

はじめに

react-nativeで開発をしているのですが、自宅で新しく環境構築をした際に

1
react-native run-android

コマンドを使用した際のエラー解決にはまった

エラー

gradleのpermissionが間違っていた

react-nativeは起動するのが簡単だから、androidアプリを始めて作るのにも関わらずこの辺は意識をしていませんでしたので、gradleとは何か?から調査

gradleとは?

https://gradle.org/

ビルドシステムのようだ。つまり、react-nativeは

gradleを使用して自分らが書いたjsのソースをobjective-cとjavaに変換している。
変換後はそれぞれのソースをjavascriptのランタイムを使って動かす。

って感じなのでしょうか。間違っていたらごめんなさい。

それでは本題に戻りこちらが最初に出てきたエラーログ

JS server already running.
Building and installing the app on the device (cd android && ./gradlew installDebug)…
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html

1
abd devices

起動しているから問題ないと思うけど念のためandroidのエミュレーターを確認。

1
2
List of devices attached
emulator-5554 device

うむ・・・やっぱり動いている🤔

https://github.com/facebook/react-native/issues/17197

調べたらこちらが出てきたので、gradleのpermissionを変更。(最初のエラーログわかりにくくない・・・?)そしてエラーログが変わります。

gradleのバージョンが古かった

次に出てきたエラーがこちら

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from ‘11.0.1’.

* Try:
Run with –stacktrace option to get the stack trace. Run with –info or –debug option to get more log output. Run with –scan to get full insights.

* Get more help at https://help.gradle.org

なんかわからんがjavaのバージョンがダメっぽい。

https://docs.gradle.org/4.4/release-notes.html

調べてみると、自動生成したプロジェクトのgradleのバージョンは4.4で対応しているjavaのメジャーバージョンは7,8のようだ。

1
java --version

でjavaのバージョンを確認

1
2
3
java 11.0.1 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

で11が入ってるからgradleのバージョンを上げれば行けそう。ということでreact-nativeプロジェクトの
android/gradle/wrapper/gradle-wrapper.propertiesに記載されているgradleのバージョンを変更

1
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip

の箇所を

1
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1-all.zip

に変更。

動いた🎉

最後に

react-native今の所簡単なアプリなので、快適です。
欲を言うならばそれぞれの言語で書いてみたかったけど、学習コスト高そうだし今の所javascriptで書けるのは楽で良い。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です