設計と実装を同時にやるのは…やめようね!!(血涙)
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
例のごとくまずはまとめから。
■結論
BIOS設定から仮想化をONに切り替えることで、android stdio上でのhaxmのインストールに成功、そのままandroidのエミュレータを動かしてサンプルappを動かすことができた。
■経緯
先日aws上にkotlinの開発環境を用意したはいいが、そもそもaws上でGUI開発をどうすんねんとざっくり調べてみたところ、色々と準備が面倒なことが発覚。
ちょっと右往左往しつつある。
手段と目的を混同しているのはよろしくない。
今はちょっと作ってみたい簡易アプリのアイデアがあって、どういう環境で勉強しながら開発するかは重要ではない。
ということで大人しくローカルのwindows10homeにandroid stdioを入れた。
javaもkotlinも全く触ったことはないが、まあここしばらくC++で通信ゴチャゴチャするCUIソフトに係わったり、pythonで簡易ツール用意したり、強制的にlinux環境で仕事したりで、徐々に知識も身についてきたからなんとかなるっしょ!!とまずサンプルを動かしてみようと試みる。
がそもそもandroidのエミュレータが動かない?
なんでじゃい!?!??!??
どうやらHAXMのインストールに失敗しているようす。
ログを見ろと言っているので、該当ファイルを見てみる、C:\Users\ユーザー名\AppData\Local\Tempを開く、haxm_install_yyyymmdd_hhmmのテキストファイルを開く。
Version: 7.6.5
Output folder: C:\Program Files\Intel\HAXM
Extract: checktool.exe... 100%
Execute: C:\Program Files\Intel\HAXM\checktool.exe --verbose
CPU vendor * GenuineIntel
Intel64 supported * Yes
VMX supported * Yes
VMX enabled - No
EPT supported * Yes
NX supported * Yes
NX enabled * Yes
Hyper-V disabled * Yes
OS version * Windows 10.0.19041
OS architecture * x86_64
Guest unoccupied * Yes. 0 guest(s)
The system requirements are not satisfied.
??!?!??
いやこんなん見てもさっぱりですがな・・・
そのまま読む限りは、VMX enabledがNoになっているのがダメそうかね。
同じような症状の人がいないかググってみる。
全く同じような状況はなさそうだったが、どうやらwindows10Homeだと複数OSを動かすような機能がONにできないようす。確かにHyper-Vの設定とか去年ぐらいに開発作業でなんかそこらへんの設定いじらされた気がするなあ(まるで成長していない・・・)
どうしたもんかと記事を漁っていると以下の記事を発見。
http://syrup-factory.com/memo/archives/31
VirtualBoxの話だから少しずれてるか?そもそも今HAXMがインストールできていない原因がここにあるのかが明確でないわけだが・・・
とはいえ既に色々と汚染されているwindowsマシンだし、試しにやってみることに。
とりま再起動、lenvoなのでロゴが出ているときにenter入力でbios画面へ。
AdvancedからCPUSetupでそれっぽい項目を探す。
Intel(R) Virtualization Technologyがdisableになっとる、項目の説明文を読むに、パーティションによらず同時に複数のオペレーティングシステムを動かすことを可能にするうんぬんと記載がある、うーんこれかな?
物は試し、enableに変更して再起動。
再度android stdioを起動してHAXMのインストールを試す。
が、失敗。
何があかんねんや・・・
一応失敗のログの内容は変わっているようだが、ログの該当フォルダを再度参照すると、そもそもそのフォルダが存在していないようす?
ちょっとまた沼ってきたな・・・
一旦仕切りなおして適当に記事を漁ると、android stdio→tool→SDKManagerからHAXMのインストーラをダウンロードして実行すると良いという話を発見。
その通りにtool、SDK Managerからインストーラを取得、インストール実行、うん?成功しているのか?
とりあえずサンプルプログラムをビルド、実行してみる。
がうまくいかない、エラーログをみるとまだandroidのエミュレータが立ち上がっていない?
しばらく待っていると、エミュレータが立ち上がり、無事androidの仮想環境を操作できるようになった、おおー。
そのままサンプルアプリを実行。
おーちゃんと画面が反応しているやん!
とりあえずこれをもとに改造していく形でjavaもといkotlin勉強すっかなー。
色々迷走したが、ネットの情報は基本的にあてにならんな・・・(おまいう)
ということで、以下記録。
■やりたいこと
aws cloud9でandroidのアプリを作る環境を用意したい。
→当初はpython+kivyとやらを利用しようとしたが、kivyのpip installが最終的にうまくいかなかったので断念。
そもそもpythonでandroid appの勉強をしようというのが前提として間違いなのでは・・・?
→おとなしく現状一番主流(?)なjava+kotlinにすることに、まず最低限のビルド+実行の環境だけ作ってみる。
■右往左往した流れ
ググってまず見つけた日本語記事、が微妙に記述がおかしくないか・・・?
https://hi-algorithm.com/cloud9-kotlin/
同じような英語記事を発見、こちらをまず参考にすることに。
https://danielllewellyn.medium.com/kotlin-in-aws-cloud-9-74c6da4dbd79
とりま順番にコマンドを実行する。
sudo yum -y install java-1.8.0-openjdk-devel
sudo update-alternatives --config java
→1.8.0を選択
sudo update-alternatives --config javac
→1.8.0を選択
→ここまではおk、が次のコマンドがよくわからんことになっている・・・
どうやら公式情報
https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/sample-java.html#sample-java-sdk-creds
を見るに、単にコマンドの区切りがされていないだけ?
※いやこの記事も横幅制限で改行が変なところでされてしまいそうだが、まあいいか(放置)
公式が正しいやろということでそっちを参考に実行する。
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install gradle
が、gradleのinstallで失敗、どういうこっちゃねん・・・
javaは全然知らないが、Mavenの方のインストール手順を順に実行。
sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
sudo yum install -y apache-maven
最後のyum installのところで容量が足りんと怒られる。
マジか・・・つかデフォルト10GBしか割り当てられていないのか・・・
ググって暫定的に容量を20GB増やす。
https://ri-dream.net/blog/aws/aws-cloud9-volume-change
mvnが入ったことを確認。
mvn -version
よくわからんがプロジェクト作成、いらんのでは、この手順?
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
と、ここまでやって、そもそもmvnじゃなくて、kotlinをsdk installするという話なのでは??と話が戻る、もしかしたらmvnは必要なかったのかもしらん・・・
sdk install kotlin
インストール成功したっぽい・・・えぇ・・・
適当に拾ってきたhelloソースをコピペ
public class hello {
public static void main(String []args) {
System.out.println("hello kotlin");
}
コンパイル
kotlinc hello.kt -include-runtime -d hello.jar
実行
java -jar hello.jar
一応これで出力されたので、最低限勉強し始める環境はできたんじゃないでしょうか。
ほんとうか?android画面の実行確認とかawsでどうすんねや??
まあそのあたりは、javaとkotlinの勉強しながら今度用意しよう・・・
スポンサードリンク
スポンサードリンク