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