Android Studioで、以前はSDKマネージャーで「Google Repository」をチェックしておけば自動で使っているライブラリのaarファイルなどがダウンロードされていました。しかしAndoid Studioのアップデートによりリポジトリのダウンロードがされなくなりました。
Android Studioを使って開発している人は、Gradleファイルなどをちゃんと設定しておけば勝手に依存関係を解決してくれるのでなんの問題もありません。しかし、それ以外のツールで開発している場合は必要なライブラリのaarファイルをダウンロードしなければならないときがあります。
そのダウンロード方法をご紹介します。
まず、ダウンロードしたライブラリのバージョンを調べます。
グーグルのサイトにビルドツールMaven用のバージョンが一覧になっているxmlファイルがあるので、それを使うと便利です。
https://dl.google.com/dl/android/maven2/「ライブラリのグループパス」/group-index.xml
にアクセスすると、利用可能なバージョンが一覧となっています。
https://dl.google.com/dl/android/maven2/master-index.xml
「ライブラリのグループパス」の部分は、
https://dl.google.com/dl/android/maven2/master-index.xml
に一覧がありますが、基本的にはパッケージ名の「.」を「/」にしたものです。
例えばGoogle Play Servicesならパッケージ名が「com.google.a
ndroid.gms」なので「com/google/android/gms」となります。
よってGoogle Play Servicesでは次のxmlファイルにバージョンが一覧となっています。
https://dl.google.com/dl/android/maven2/com/google/android/gms/group-index.xml
ここでダウンロードしたいライブラリのバージョンを選びます。
次に実際のarrファイルの場所は
https://dl.google.com/dl/android/maven2/「ライブラリのグループパス」/「ライブラリ名」/「バージョン」/「ライブラリ名」-「バージョン」.aar
となります。
例えば、ライブラリ「play-services-basement」のバージョン「16.2.0」なら、次のurlからダウンロードできます。
https://dl.google.com/dl/android/maven2/com/google/android/gms/play-services-basement/16.2.0/play-services-basement-16.2.0.aar
手でurlを書き直してダウンロードするのは少し面倒なので、よく使うライブラリならスクレイピングツールを作っておくと便利です。
例えば「play-services-ads-lite,play-services-ads,play-services-base,play-services-basement,play-services-tasks,support-v4」の最新バージョンのurlを表示し、ダウンロードして実行したディレクトリに保存するPython3のスクリプトは以下のようになります。
from bs4 import BeautifulSoup import requests version_url = "https://dl.google.com/dl/android/maven2/com/google/android/gms/group-index.xml" html = requests.get(version_url) bf = BeautifulSoup(html.text,"lxml") libs = ["play-services-ads-lite","play-services-ads","play-services-base","play-services-basement","play-services-tasks"] for l in libs: vs = bf.find(l)["versions"].split(",") lv = vs[len(vs)-1] durl="https://dl.google.com/dl/android/maven2/com/google/android/gms/%s/%s/%s-%s.aar" % (l,lv,l,lv) print(durl) arr_file = requests.get(durl) with open(l+".aar", 'wb') as save_file: save_file.write(arr_file.content) version_url = "https://dl.google.com/dl/android/maven2/com/android/support/group-index.xml" html = requests.get(version_url) bf = BeautifulSoup(html.text,"lxml") vs = bf.find("support-v4")["versions"].split(",") lv = vs[len(vs)-1] durl="https://dl.google.com/dl/android/maven2/com/android/support/support-v4/%s/support-v4-%s.aar" % (lv,lv) print(durl) arr_file = requests.get(durl) with open("support-v4.aar", 'wb') as save_file: save_file.write(arr_file.content)
ただし、単純に最新バージョンをダウンロードすると、依存関係などで動かない可能性があるので、バージョンは自分で指定した方が良いかも知れません。
こちらの記事は以下のサイトを参考にしました。
(This host) = https://njf.jp