13
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ElixirAdvent Calendar 2022

Day 24

ElixirDesktop Androidを動かす - Windows11に環境構築失敗編

Last updated at Posted at 2022-12-17

こんにちは!
プログラミング未経験文系出身、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に飛ぶこともできます。
image.png

SDK Tools タブから[NDK (Side by side)] と [CMake] のチェックボックスをオンにして、Applyを押下します。
image.png

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をアンインストール&インストールしなおしてバージョンを合わせました。
image.png

image.png
image.png

(ダメだった) Erlang, Elixir, git, npmのバージョン確認

image.png
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の日本語公式サイトからインストーラをダウンロードしようとすると、以下のエラーメッセージがでてダウンロードが始まりません...(こういうのってどこに申し出たらいいんでしょう?)
image.png

一方、こちらの英語公式サイトのインストーラを使うと...インストーラがダウンロードされました!
image.png

というわけでElixirのインストールは英語公式サイトを参考にしましょう。日本語公式サイトは情報が古い場合があります。

~Elixirの国のご案内~

※Elixirって何ぞや?と思ったらこちらもどぞ。未来がぎゅっと詰まった、Elixirは今年で生まれて10周年です:laughing::sparkles::sparkles:

We Are The Alchemists, my friends!:bouquet:1
Elixirコミュニティは本当に優しくて温かい人たちばかり!
私が挫折せずにいられるのもこの恵まれた環境のおかげです。

まずは気軽に話しかけてみてください。2

  1. @torifukukaiouさんのAwesomeな名言をお借りしました。Elixirコミュニティを一言で表すと、これに尽きます。

  2. @kn339264さんの素敵なスライドをお借りしました。Elixirコミュニティはいろんな形で活動中!

13
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?