|
1: 2019-04-25 (木) 20:40:46 njf |
| + | Andoid Studioのアップデートにより、それまではSDKマネージャーで「Google Repository」をチェックしておけば自動で使っているライブラリのarrファイルなどがダウンロードされていたのが、されなくなりました。 |
| | | |
| + | Android Studioを使って開発している人はなんの問題もありませんが、それ以外のツールで開発している場合は必要なライブラリのarrファイルが必要になることがあり、他の方法でダウンロードしなければなりません。 |
| + | |
| + | その方法をご紹介します。 |
| + | |
| + | まず、ダウンロードしたライブラリのバージョンを調べます。 |
| + | |
| + | グーグルのサイトにビルドツールMaven用のバージョンが一覧になっているxmlファイルがあるので、それを使うと便利です。 |
| + | |
| + | 「https://dl.google.com/dl/android/maven2/「ライブラリのパッケージ名の.を/に変えたもの」/group-index.xml」 |
| + | |
| + | にアクセスすると、利用可能なバージョンが一覧となっています。 |
| + | 「ライブラリのパッケージ名の.を/に変えたもの」の部分は、例えばGoogle Play Servicesならパッケージ名が「com.google.android.gms」なので「com/google/android/gms」となります。 |
| + | |
| + | よって次の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 |
| + | |
| + | 手でダウンロードするのは少し面倒なので、よく使うならスクレイピングツールを作っておくと便利です。 |
| + | |
| + | 例えば「play-services-ads-lite,play-services-ads,play-services-base,play-services-basement,play-services-tasks,support-v4」の最新バージョンをダウンロードして実行したディレクトリに保存する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+".arr", '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.arr", 'wb') as save_file: |
| + | save_file.write(arr_file.content) |