2011-01-02

Android開発環境構築でちょっとはまる

2011年にもなって、ようやく重い腰を上げてAndroidの開発環境を整えました。今後、業務でもAndroidがらみの仕事が増えますし、個人的にもAndroid端末を手に入れたので、Androidアプリ開発への興味が高まってきたところでもあります。

ちなみに、入手した端末は、去年一部で話題になった「月額8円」で入手可能だった「IS01」です。バージョン1.6からメジャーアップデートができないようですが、この値段であれば文句は言いません。

本題に戻ってAndroid開発環境構築ですが、ウェブ上にいくらでも参考資料があるので詰まるところなんてないだろう……と思っていたら、いきなりAndroid SDKのインストールではまりました。

Download the Android SDK」から、「Recommended」とされているインストーラ版の「installer_r08-windows.exe」をダウンロードして実行したのですが、以下のような画面が出て先に進みません。

Java SE Development Kit (JDK) not found.

見ての通り、JDKが見つからないとの仰せが。すでにJDKはインストール済みのはずなのになぜ? と思いつつ、一応「Java SE Downloads」から、現時点での最新版JDKである「Java SE 6 Update 23」を取得して更新したのですが、状況は変わらず。

仕方ないので「installer_r08-windows.exe」で検索すると、「Issue 13003: installer_r08-windows.exe fails to detect Java SE JDK on Windows 7 64-bit」という情報がひっかかりました。なるほど、Android SDKのインストーラは、レジストリ"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft"を見にいってJDKの有無を判断しているようですが、JDKが設定している本来のレジストリ"HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft"を見ていないので、このようなことが起きているようです(うちのPCはWindows 7 64bit版です)。

You have the 64-bit JDK installed. The installer_r08-windows.exe is looking in the registry for the 32-bit version (HKLM\Software\Wow6432Node\JavaSoft) instead of the 64-bit location (HKLM\Software\JavaSoft). From regedit, I exported my JavaSoft key to a reg file, edited the regfile with Wow6432Node in the paths, and imported. It was enough to get the installer to figure out where the JDK was installed and move forward without problems.

Issue 13003: installer_r08-windows.exe fails to detect Java SE JDK on Windows 7 64-bit

64bit版のJDKをインストールしたね。「installer_r08-windows.exe」は、64bit版のレジストリではなく、32bit版のレジストリを見にいっている。私はregeditを使って、"JavaSoft"のキーをregファイルにエクスポートして、そのregファイルの中のパスに"Wow6432Node"を付けるよう編集して、インポートした。これで、JDKがどこにあるかをインストーラが把握できるようになって、問題なくその先に進むようになった。

というわけで、そのページのコメントにも書いてあるとおり、"HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft"のレジストリをファイルにエクスポートして、エディタで"HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft"の文字列をすべて"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft"に置換して、インポートしてみたところ、以下のように正常にインストールすることができました。

というわけで、そのページのコメントにも書いてあるとおり、以下の手順を行ってみました。

  1. "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft"のレジストリをregファイルにエクスポートする。
  2. エディタでregファイルを開き、"HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft"の文字列をすべて"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft"に置換する。
  3. 編集したregファイルをインポートする。

すると、以下のようにJDKが認識され、正常にインストールすることができました。

Java SE Development Kit (JDK) version 1.6 has been found.

まあ、「android-sdk_r08-windows.zip」の方をインストールしてもよかったんでしょうけどね。

0 件のコメント:

コメントを投稿