AndroidアプリをWindowsで簡単に作成する方法。

頑張って、AndroidアプリをWindows10で作ってみようと思っております。
ただ、環境構築が予想外に大変でした。
ちょっと調べれば、すぐ環境構築できるだろうと考えたのですが、甘かった！
ハマりました。

１．
まず、最初に見たサイトがこちらでした。（Pythonでスマホアプリ（apk）を開発する【Buildozer】）
https://self-development.info/python%E3%81%A7%E3%82%B9%E3%83%9E%E3%83%9B%E3%82%A2%E3%83%97%E3%83%AA%EF%BC%88apk%EF%BC%89%E3%82%92%E9%96%8B%E7%99%BA%E3%81%99%E3%82%8B%E3%80%90buildozer%E3%80%91/

ここには下記の記載があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1665829/15cfdad0-fab5-69aa-d679-2c61d7d76fd9.png)

「Windowsには、対応していません。」との事です。
別の記事に、「そうであるから、Window10に、MicrosoftストアからUbuntuアプリをインストールして、開発環境を構築しろ！」みたいな事が書いてあって、その通りにしたのですが、これが上手く設定できません。（純粋なUbuntuで設定すればできるのだろうが、仮想環境では、なぜか上手くいかない。これで丸２日ロスしました。）

２．
そんな中で、「でも、そもそもWindowsで開発できない訳ないじゃん。絶対に出来る筈。」と思い、再検索した所、下記の記事を見つけました。

https://techacademy.jp/magazine/1146

Middleware（Java Development Kit）を設定すれば、Android Studio（ここにBuildozerも含まれております。）が構築できるとの事。（言われてみれば、当たり前だが。。。。）

３．
と言う訳で、救われた！　
と思ったけど、ここからのバトルがまた凄かった。
上記のTechacademyのサイトの順番で環境設定をする中で、いくつかの細かいエラーは出てきたので、その都度、ネットで調べながら、解決をしていったのだが、下記のエラーはしぶとかった。（丸半日かかった。）

** Error at Gradle Update: Expected minSdkVersion >= 21 but found 18 ***

英語サイトを中心に、ネットで探しまくったのですが、全く見つからない。
普通に考えて、SDK Versionをアップすれば良いのでしょうが、最新版にアップしても同じエラーが出続けました。
そんな時に、このサイトを見つけました。

AndroidでAPIレベルを変更する方法　→　https://www.ithack.info/api/

こんな小手先で良いのか？　と言う気はしますが、兎に角、動いたのでオシマイです。
やっとアプリ開発に入れます！
（しかし、何で英語サイトで引っ掛からなかったのであろうか？）


＜後日談1＞
これで終わったと思ったのですが、SDK Managerから、Androidエミュレーターを動かすと、"The ADB binary found at～adb.exe is obsolete”というエラーが出て、ブルー画面が出続けました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1665829/7ca95870-c122-c542-28cd-20f6ea629005.png)
下記のサイトにのっとり、解決を試みたのですが、ダメでした。
→　https://howcang.com/2019/05/02/obsolete/
これで、また丸２日消えました。

英語サイトも含めて、調べまくったのですが、上記以外に情報はないですね。。。
途方に暮れていたのですが、もしかしたら、「Microsoftストアから、DLした"Ubuntu 20"をアンインストールしたら、イケるのでは？」とジョギング中に気が付き、アンインストール後、PC再起動したら解決しました！
と言う訳で、コード記載時もそうですが、気分転換は重要ですね。

<後日談2>
ところで、AndroidのGUIアプリをPythonで作成するには、Kivyと言うモジュールがあるとの事です。つまり、あんまり、複雑に考えないで、このKivyモジュールを使えば、PythonでAndroidアプリが開発できる訳です。
「Windows＆Pythonでやる！」と言う事が目的なので、実はこれが一番良いと言う事に気が付いた。こんな記事があります。（Python Kivyの使い方④　～Androidでの実行～）
https://qiita.com/dario_okazaki/items/4f6373051afb70b794d9
＜以下引用＞
*******************
KivyをAndroid端末で実行する方法
方法としては３つ方法がありますが目的によって実行方法が違います。
①自分の保有するAndroid端末で動かす
②APKを作成し、Google Playなどの配布して不特定多数の人に利用してもらう
③python-for-androidを利用してandroid端末上でPythonを実行する

①の場合は、Kivy Launcherという、Androidアプリを使用して実現します。今回はこの方法を採用して説明します。
②の場合はUbuntuにBuildozerというパッケージをインストールして実現します。
windowsの場合は、VMが配布されていますのでそちらを使用してください。
https://kivy.org/#download のVirtual Machineの項目からダウンロードできます。
実際に使用する場合は、KivyアプリケーションをGoole Play Storeで公開する為に #2 APKを作成という投稿で実際に実行された方がいるので参考にしてみてください。
③の場合は①、②とは方法性が違ってAndroid端末上で実際にPythonスクリプトを実行するという方法になります。Qpythonで検索すると色々出てきます。
*******************
Androidアプリを作るのと、それをGoogle Playで公開するのは、上記記事に書いてあるように違います。と言う訳で、まず、①をやるのが、Step１だと思う。
Kivyの使い方としては、下記の記事に良くまとまっていると思う。

Python Kivyの使い方① ～Kv Languageの基本～
https://qiita.com/dario_okazaki/items/7892b24fcfa787faface

尚、誤解の無いように断っておきますが、KivyはPythonを理解している人には簡単です。とりあえず、これでAndroidアプリは開発できます。
ただ、複雑なアプリを作る場合は、やはり、JavaかKotlinで書く必要がある様です。
https://www.quora.com/Which-is-the-best-Kivy-versus-Java-Kotlin-in-Android-Studio