Ad

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)

ただし、単純に最新バージョンをダウンロードすると、依存関係などで動かない可能性があるので、バージョンは自分で指定した方が良いかも知れません。

こちらの記事は以下のサイトを参考にしました。

Google Play Services aar download for above 11.0.4


Front page   Edit Freeze Diff Backup Upload Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 113, today: 1, yesterday: 1
Princeps date: 2019-04-25 (Thu) 20:40:46
Last-modified: 2019-05-14 (Tue) 06:50:39 (JST) (64d) by njf
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失


NJF