こんにちは!
プログラミング未経験文系出身、Elixirの国に迷い込んだ?!見習いアルケミストのaliceと申します。
今回はElixirDesktop android-example-appをWindows11で実際に動かすための環境構築をしましたので、備忘録としてまとめたいと思います。
こちらはWindowsネイティブに環境構築をしようとした失敗編です。ちゃんと動いたやり方は★こちらから★
実行環境
Windows 11 Home(バージョン 21H2, OS ビルド 22000.1219)
ビルドに必要な条件
・Android Studioがインストールされていること。
・NDK(※Native Development Kitの略、Android で C や C++ のコードを使用できるようにするツールセット)がインストールされていること。
・git、npm、asdf がインストールされていること。
└asdfはWindowsに対応していないので、localのElixirとErlangをアンインストール&インストールしなおしてバージョンを合わせようとしました→【結局うまくいきませんでした】
実際に環境構築してみた!
Android Studioのインストール
Windows用の手順に沿ってインストールを実施。
NDKのインストール
NDK と CMake のインストールと設定から、『NDK と CMake をインストールする』の手順に沿ってインストールを実施。
プロジェクトは立ち上げなくても起動時の画面からSDK Managerに飛ぶこともできます。
SDK Tools タブから[NDK (Side by side)] と [CMake] のチェックボックスをオンにして、Applyを押下します。
gitのインストール
こちらからインストーラをダウンロードしてインストールを実施。
(私は既にインストール済のためスキップしました)
npmのインストール
Windows64ビット用のインストーラをダウンロードしてインストールを実施。
詳細な実施手順はこちらの記事を参考にしました。
asdfのインストール →ElixirとErlangのバージョンを合わせる
asdfがなぜ必要かというと、以下の画像の通り、How to build & run の手順3 でElixirおよびErlangのパッケージマネージャとしてバージョン齟齬を無くすために必要だから。
言い換えれば、asdfが無くともErlang 25.0.4 かつ Elixir 1.13.4-otp-25を満たせばビルドできるはずと考え、localのElixirとErlangをアンインストール&インストールしなおしてバージョンを合わせました。
(ダメだった) Erlang, Elixir, git, npmのバージョン確認
ElixirのインストーラにはOTP25.0としか書かれていなかったので不安でしたが、こちらを参考にErlangのバージョンを確認しました。
OTP25.0.4が入っているのに、 compiled with Erlang/OTP 22になるのはなぜなんでしょう?
結局この方法では、Phoenixが起動できず解決できませんでした...
C:\Users\ai_ni\code\practice>elixir --version
Erlang/OTP 25 [erts-13.0.4] [source] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [jit:ns]
Elixir 1.13.4 (compiled with Erlang/OTP 22)
mix phx.new sample --database sqlite3
12:27:06.296 [error] Loading of c:/Program Files (x86)/Elixir/lib/elixir/ebin/Elixir.Code.Formatter.beam failed: :badfile
12:27:06.296 [error] beam\beam_load.c(86): Error loading module 'Elixir.Code.Formatter':
lambda already defined for label 749. To fix this, please recompile this module with an OTP 25 compiler.
(余談) Elixirの日本語公式サイトのリンク先がエラーになっていた
こちらのElixirの日本語公式サイトからインストーラをダウンロードしようとすると、以下のエラーメッセージがでてダウンロードが始まりません...(こういうのってどこに申し出たらいいんでしょう?)
一方、こちらの英語公式サイトのインストーラを使うと...インストーラがダウンロードされました!
というわけでElixirのインストールは英語公式サイトを参考にしましょう。日本語公式サイトは情報が古い場合があります。
~Elixirの国のご案内~
※Elixirって何ぞや?と思ったらこちらもどぞ。未来がぎゅっと詰まった、Elixirは今年で生まれて10周年です
We Are The Alchemists, my friends!1
Elixirコミュニティは本当に優しくて温かい人たちばかり!
私が挫折せずにいられるのもこの恵まれた環境のおかげです。
まずは気軽に話しかけてみてください。2
-
@torifukukaiouさんのAwesomeな名言をお借りしました。Elixirコミュニティを一言で表すと、これに尽きます。 ↩