Android SDK Manager で Fetch エラー、まさか cache が原因だったとは。。。
PhoneGap を試すなら Android の実機でも試せるようにしたい。ちなみに PhoneGap 2.4.0 の場合 r21.0.0.rc9 以降じゃないと動かないらしい。
前に入れた ADT は r20.0.1 だし、それじゃバージョンアップと思ったら Failed to fetch なるエラーが出て Android SDK Tools を更新できない。ええーーΣ(゚Д゚)
Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list-2.xml.xml, reason: File not found
...
Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-7.xml, reason: File not found
パスが変わったのかなと思ったけど addons_list-2.xml や repository-7.xml はネット上にある。同じネットワークにつながってる別 Mac だと Fetch に成功する。試しに Android Developers から最新の android-sdk-r21.1-maxosx.zip を取得して、tools/android を実行してみたけど、やっぱり Fetch できないエラーが出る。どー考えても自分の Mac の環境問題。原因なんだろ?:-(
とりあえず「Failed to fetch ... repository.xml」で検索すると、いくつも対処方法が見つかる。結構、Failed to Fetch はあるみたい。手当たり次第に試してみた。結果はこんな感じ。
1. 設定で Force https:// を適用する
ほとんどのケースはこれ。理由は良くわからないけど https:// だとコケて http:// だと成功するらしい。メニュー [Android SDK Manager > 環境設定]を開いて、Force://https ... にチェックを入れて再起動。→ 失敗。あれ? (T^T)
2. androidtools.cfg にプロパティを定義する
1.の操作をすると ~/.android/androidtools.cfg が生成されて、sdkman.force.http=true として保存される。Talk Android に "(just one line)" とあったので、この1行だけ残して Android SDK Manager を再起動。→ 失敗。1.がダメなんだから動く方が変だよね。 ^^;)>
Make a androidtool.cfg file in ~/.android/ directory, with the following content:
Failed to fetch URL https://dl-ssl.google.com/android/repository/repository.xml
sdkman.force.http=true
(just one line).
3. Android SDK の各バージョンを手動でインストールする
fukushimaのソフト屋さん、Do Design Space さん曰く、ダウンロードできない addons_list.xml や repository.xml に書かれてる内容を読み取って android-sdk-mac/platforms に展開する方法があるらしい。試しに android-sdk-macosx_r20/platforms/* を android-sdk-macosx_r21/platforms 以下にコピーして Android SDK Manager を再起動したら認識された。最終手段はこれだな、と思いつつ保留 ^^;)
4. ADT を zip でインストールする
Android Developers の Troubleshooting に zip ダウンロードした ADT をインストールする手順が紹介してあった。r20→r21 にアップデートできるかなーと思い、Eclipse メニュー [Help > Install New Software] から実行してみたけど r20 のままだった。これも失敗。そもそもインストールした ADT.zip はどこ行った?(T^T)
- Download the ADT Plugin zip file (do not unpack it):
- Start Eclipse, then select Help > Install New Software.
- Click Add, in the top-right corner.
- In the Add Repository dialog, click Archive.
- Select the downloaded ADT-21.1.0.zip file and click OK.
- Enter "ADT Plugin" for the name and click OK.
- In the Available Software dialog, select the checkbox next to Developer Tools and click Next.
- In the next window, you'll see a list of the tools to be downloaded. Click Next.
- Read and accept the license agreements, then click Finish. If you get a security warning saying that the authenticity or validity of the software can't be established, click OK.
- When the installation completes, restart Eclipse.
5. cache/* のオーナー権限を変更する(成功)
~/.andorid/androidtools.cfg を見たときに cache/ があるのを思い出し、中を見てみたら sdkbin-xxx-repository_xml とかどっかで見たような名前のファイルがたくさんある。addons_list.xml や repository.xml は ~/.android/cache に一度保存されるんだね。まさか、と思って ls -l したらオーナーが root になってる。chown でオーナー変更して、Android SDK Manager を再起動したら、、、成功!Σ( ̄▽ ̄) キターーーー!
そーいや、はじめて ADT をインストールしたときに参考にしたサイトでは Android SDK Manager を root で実行しましょ、となってたような記憶が、、、。しばらくしてから android-sdk-macosx 以下はオーナー変更してたけど、まさか ~/.android に悪影響が出てるとは思ってなかった。解決できて良かったよ。 :-)