Eclipse IDE with built-in ADT で Android 4.2 開発環境を構築する

<更新履歴>
2013年4月22日 – 《9 Android SDK Managerでコンポーネントを追加する》 にあった 「Google USB Driver」関係の記述を Android Google USBドライバ に切り出して分けました。
2013年2月5日 – Java SE 6 Update 39 バージョンアップに伴い、記述を修正しました。
2013年1月11日 – 《9 Android SDK Managerでコンポーネントを追加する》 にあった 「Google APIs」関係の記述を Androidアプリの署名<KeyStore Keytool AndroidDebugKey> に切り出して分けました。
2012年12月29日 – Java SE 6 バージョンアップ(参考サイト:Oracle Blogs 日本語のまとめ-Java SE Updates)に伴い、 Java SE Development Kit 6 Update 37 →  Java SE Development Kit 6 Update 38 、jdk-6u37-windows-i586.exe → jdk-6u38-windows-i586.exe 、jdk1.6.0_37 → jdk1.6.0_38 といったように記述を修正しました。


2012年11月13日 Android 4.2(Jelly Bean)がリリースされ、Android SDKがアップデートされました。参考サイトを以下に記します。

Android 4.2採用のスマートフォン「Nexus 4」、タブレット「Nexus 10」、32GB「Nexus 7」とスマホやタブレットがそろってきたこともあり、Android4.2 アプリ開発環境を導入しようと思います。

オープンソース(ソースコードが公開されているソフトウェア)のIDE (Integrated Development Environment:統合開発環境)であるEclipse(エクリプス)にADT(Android Development Tools:アンドロイド開発ツール群)をバンドルした「SDK ADT Bundle」(Eclipse IDE with built-in ADT)が、Android Developerのサイト下の[About Android] [Get the SDK] [Open Source] [Support] [Legal] の [Get the SDK] をクリックすると次のように確認できます。

With a single download, the ADT Bundle includes everything you need to begin developing apps:(たったひとつダウンロードするだけで、ADTバンドル版は、アプリ開発を始めるために必要なすべてのものが含まれています。)

  • Eclipse + ADT plugin (→ Eclipse 3.8 + ADT 21.0.0)
  • Android SDK Tools (→ Android SDK r21)
  • Android Platform-tools
  • The latest Android platform (→ Android 4.2 プラットフォーム)
  • The latest Android system image for the emulator (最新のエミュレータ用のAndroidシステムイメージ)

インストールしてからEclipse メニューの「ヘルプ」→「ADT について」をクリックして得た情報によると「This product includes Eclipse Platform, JDT, CDT, EMF, GEF and WTP」となっており、「Eclipse Platform」は「Version: 3.8.0.v20120607-071945-9gF7jI7nG5qByXMVdkhRMWBQlF4PnDCLybDCPQ」です。

なお、このEclipseは、JRE(Java SE Runtime Environment:Java 実行環境)もJDK(Java SE Development Kit:Java開発キット)も内蔵していません。EclipseはJavaアプリケーションなので、JREもJDKもインストールされていない環境で起動しようとすると、「A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No Java virtual machine was found after searching the following locations: C:adt-bundle-windows-x86eclipsejrebinjavaw.exe javaw.exe in your current PATH」とエラーになります。JDKをインストールするようにします。

また、日本語化がされていません。

今まで、

とWindowsVista32ビットオペレーティングシステム上でAndroid開発環境を構築しましたが、今回はADTバンドル版を日本語化して、Android開発環境を構築してみます。

《事前事項1 漢字などの全角文字を含まないユーザー名でログインする》

漢字などの全角文字を含んだユーザー名でログインして環境を構築していくと、パスを認識してくれない不具合で、Android仮想端末(エミュレータ)を作成するときにエラーになります。漢字ユーザー名のまま作業した場合面倒になるのでおすすめしません。参考サイトを以下に記します。

《事前事項2 ファイルの拡張子が表示されるよう設定する》

Windows標準設定のままでは、ピリオド(.)以降の拡張子が表示されません。圧縮ファイルは「xxxxx.zip」、実行ファイルは「xxxxx.exe」というように、拡張子が表示されるほうがファイルタイプが判別しやすくなります。(参考サイト:ファイルの拡張子を表示するには?

  1. 「Windows」キーを押しながら「E」キーを押してエクスプローラを起動します。
  2. 「Alt」キーを押しながら「T」キーを押して、「フォルダオプション」をクリックします。
  3. 「表示」タブをクリックし「詳細設定」リストの中の「登録されている拡張子は表示しない」のチェックをはずし、「OK」ボタンをクリックします。

《事前事項3 本番用keystoreをバックアップしてから「.android」フォルダを削除する》

Android SDK Tools をインストールすると、「.android」フォルダが作成されます。「.android」フォルダには、Android SDK Tools のインストール先や、エミュレータの設定などの情報が保管されます。以前にAndroid SDK Tools をインストールしたことがあり、「.android」フォルダが存在する場合は、Eclipse 起動時に、「Android開発へようこそ」画面にならず、この先の説明と動きが異なります。Eclipseは一台のパソコンに複数存在させることが可能ですが、以前のAndroid環境導入済みのEclipseを残したまま、改めてEclipseをインストールして別のAndroid開発環境を構築しようとしても、AVD情報などは同一の「.android」フォルダを共有するので、「Android開発へようこそ」画面になりません。

デフォルトの「.android」フォルダの場所はWindowsのバージョンによって異なります。
Windows XP → C:Documents and Settings<user-name>.android
Windows Vista/7 → C:User<user-name>.android
になります。<user-name>はユーザー名(ログイン名)になります。

以前に独自設定をしている場合は上記以外の場所に「.android」フォルダがあることもあります。参考サイトを以下に記します。

注意点として、Google Play にアプリをリリース済みで本番用のkeystore(証明書)を作成していた場合、紛失するとGoogle Play に出したアプリをアップデートできなくなります。「.android」フォルダ内に本番用のkeystoreを作成していた場合は、「.android」フォルダを削除する前に退避します。Google Play にまだアプリを出していなければ、意識する必要はありません。参考サイトを以下に記します。

《事前事項4 以前のEclipseを削除するならworkspaceの場所を確認する》

プログラムソースを保存しているworkspaceがEclipseのインストールフォルダ内にある場合、以前のEclipseフォルダを削除するとプログラムソースが失われてしまうので注意が必要です。必要ならworkspaceをバックアップ(別の場所に保存)してください。

《1 JDKをインストール》

Androidアプリ開発システム要件に沿うよう、JDK6をインストールします。JREのみやJDK5、JDK7では要件を満たしません。JDKのインストール先のフォルダは、このサイトではデフォルトのままとしますが、複数の環境を切り替えたい場合は参考サイトを参照してください。(参考サイト:ローカルのJava環境の管理について

  1. Java SE Downloadsサイトを開くと、最初にJavaSE7が目に入りますが、下へスクロールして、Java SE 6 Update 39 の JDK の「DOWNLOAD」をクリックします。
  2. Java SE Development Kit 6 Update 39 の 「Accept License Agreement」にチェックを入れます。
  3. 「Windows x86」と表示されている行のものが32ビットオペレーティングシステム用、「Windows x64」と表示されている行のものが64ビットオペレーティングシステム用です。32ビット用として「jdk-6u39-windows-i586.exe」をクリックし、ダウンロードします。
  4. ダウンロードフォルダを開き、「jdk-6u39-windows-i586.exe」をダブルクリックして起動します。(ブラウザの設定によってはダウンロード後自動起動する場合もあります。)
  5. 「ユーザーアカウント制御」画面が開き、プログラムを続行する許可を求められるので、「続行」をクリックします。
  6. 「Java(TM)SE Development Kit 6 Update 39 - セットアップ」画面が開くので、「次へ」をクリックします。
  7. 「カスタムセットアップ」画面になり、「開発ツール」・「ソースコード」・「公開JRE」・「JavaDB」が表示されます。(「公開JRE」は、公開JREがインストール済みの場合、表示されません。「JavaDB」は、JDK7のインストール時の場合、表示されません。) Java開発には、最低限でも「開発ツール」をインストールする必要があります。「ソースコード」は、インストールしない場合、デバッグ時にJavaのclassライブラリにステップインしたときに「ソースコードが見つかりませんでした。」と表示され、不便が生じます。「公開JRE」と「JavaDB」はJava開発に必須のものではありません。そこで、「開発ツール」・「ソースコード」のみインストールすることとし、「公開JRE」・「JavaDB」は、行頭のドライブアイコンを左クリックし、「この機能を使用できないようにします。」を選択し、インストール対象から除外します。(必ず除外しなければならないというわけではなく、インストールしても差し支えはありません。) 「次へ」をクリックします。
  8. 「Java(TM)SE Development Kit 6 Update 39 - 進捗」画面を経て、「Java(TM)SE Development Kit 6 Update 39 - 完了」画面になります。「完了」をクリックします。
  9. ブラウザが起動し「Java Development Kit (JDK) Registration」画面が開き、利用者登録を促されますが、しなくてもJavaは使用できるので、ブラウザ画面を閉じます。

公開JREについては、EclipseとJREとJDKを参考にして下さい。
JavaDB(参考サイト:Java DBJavaDBの使い方JavaDBメモ

《2 パスをとおす(システム環境変数JAVA_HOMEとPathの設定)》

コマンドプロンプト利用のAndroidアプリ開発環境を構築するにも書いたのですが、間違ってシステム環境変数「Path」の変数値を消してしまうと復旧は困難です。パスをとおす作業が不安な場合は、手順の下に記した※補足1※※補足2※を先に見てください。

  1. 「Windows」キーを押しながら「Pause」キーを押して(またはWindows画面左下の「スタートメニュー」→「コンピュータ」右クリック→「プロパティ」をクリックして)「システム」画面を開き、左側の表示上から4つ目の「システム詳細設定」をクリックします。
  2. 「ユーザーアカウント制御」画面が開いたら「続行」をクリックします。
  3. 「システムのプロパティ」画面が開いたら、詳細設定タブの「環境変数」をクリックします。
  4. 「環境変数」画面が開いたら、システム環境変数の「新規」ボタンをクリックします。
  5. 「新しいシステム変数」画面が開いたら、変数名に「JAVA_HOME」、変数値に「C:Program FilesJavajdk1.6.0_39」と入力し、「OK」をクリックします。”Program”と”Files”の間に半角空白がありますが 「”C:Program FilesJavajdk1.6.0_39″」とダブルクォーテーションで括る必要はありません。(既にシステム環境変数に「JAVA_HOME」が存在する場合は、「JAVA_HOME」をダブルクリックし、変数値を「C:Program FilesJavajdk1.6.0_39」に置き換え、「OK」をクリックします。)
  6. 次に、システム環境変数「Path」(大文字小文字は無視されるので「PATH」あるいは「path」となっているかもしれません。)をダブルクリックします。「システム変数の編集」画面が開き、変数名欄が「Path」で表示されたら、変数値欄をクリックし、左矢印キーで確実に入力値の文字列先頭まで移動し、文字列先頭に「%JAVA_HOME%bin;」を追記します。セミコロン(;)は複数の値を設定する場合の区切り文字なので、忘れずに記述します。「%bin;」の「」も忘れやすいので注意します。
  7. コマンドプロンプトも利用してAndroidアプリケーションを開発する場合は、右矢印キーで確実に入力値の文字列末尾まで移動し、システム環境変数「Path」の変数値の最後に「;C:adt-bundle-windows-x86sdktools;C:adt-bundle-windows-x86sdkplatform-tools(この後の作業のSDKをインストールの手順どおりに、解凍作業で、「ファイルを下のファルダヘ展開する」欄を「C:」とする場合の設定になります)を追記します。EclipseだけでAndroidアプリケーションを開発するなら設定は不要です。
  8. 上記作業の結果として、「Path」の変数値は、Eclipseだけで開発するなら 「%JAVA_HOME%bin; [元々の「Path」の変数値]」となります。コマンドプロンプトも利用して開発する場合は、 「%JAVA_HOME%bin; [元々の「Path」の変数値] ;C:adt-bundle-windows-x86sdktools;C:adt-bundle-windows-x86sdkplatform-tools」となります。最初は「%JAVA_HOME%bin; [元々の「Path」の変数値]」だけとして、コマンドプロンプトも利用したくなってから「 ;C:adt-bundle-windows-x86sdktools;C:adt-bundle-windows-x86sdkplatform-tools」の部分を追記としてもよいでしょう。入力できたら「OK」をクリックします。
  9. 「環境変数」画面で「OK」をクリックし、「システムのプロパティ」画面で「OK」をクリックして設定を反映します。

コマンドプロンプトでの開発の参考サイトを以下に記します。

間違ってシステム環境変数「Path」の元々の変数値を消してしまった場合の参考サイトを以下に記します。

※補足1※

編集する前に「コマンドプロンプト」画面で「path > pathsave.txt」と入力して、元々の値の情報を「pathsave.txt」(ファイル名は任意)に保存しておくと万一の場合のバックアップがあり安全です。

「コマンドプロンプト」画面を開くには、「Windows」キーを押しながら「R」キーを押して「ファイル名を指定して実行」画面を開き、名前欄に「cmd」と入力し、「OK」をクリックします。(参考サイト:意外に簡単! 使って便利! コマンド環境“超”入門

「コマンドプロンプト」画面に「path」とだけ入力すると、現在の「path」の変数値が画面に出力されます。通常、コマンドの実行結果は標準出力と呼ばれるデバイスへ出力され、デフォルトでは標準出力は画面に設定されています。「path > pathsave.txt」は、リダイレクトという仕組みを用いて、標準出力内容をファイルに出力するよう指定しています。「path」コマンドの結果を「pathsave.txt」という名前のファイルに書き出して残しておくという指示をしたことになり、Windows Vistaの場合、「C:User<user-name>(<user-name>はユーザー名)」フォルダに、「pathsave.txt」ファイルが作成されます。(参考サイト:炎のコマンドプロンプト入門-コマンドプロンプト活用

保存された「pathsave.txt」ファイルの内容を確認するには、「コマンドプロンプト」画面で「type pathsave.txt」と入力します。(参考サイト:炎のコマンドプロンプト入門-ファイル内容の表示

保存された「pathsave.txt」ファイルをメモ帳で開くには、「コマンドプロンプト」画面で「notepad pathsave.txt」と入力します。「Ctrl」キーを押しながら「A」キーを押して文字列を全選択して、「Ctrl」キーを押しながら「C」キーを押すことで、以前の設定をクリップボードにコピーできます。(参考サイト:コマンドラインの基礎を学ぶ コマンドプロンプト編 ファイル操作)

WindowsVista以降は「コマンドプロンプト」画面で「path | clip」とすれば、直ちにクリップボードにコピーできます。(参考サイト:Windowsのコマンドプロンプトを便利に使うための10のミニテクニック)

設定にツールを利用する方法もあります。(参考サイト:eve(Environment Variable Editor)

※補足2※

実はパスをとおす作業をしなくてもEclipseを起動する方法があります。既存の環境を変えたくない場合などは、一考の余地ありです。

<方法1>Eclipse実行ファイルの「eclipse.exe」と同じ階層の「jre」フォルダにJREがあると、Eclipseの起動にこちらが優先して使用され、環境変数「Path」でJava(JREやJDK)のパスが設定されていたとしても、そちらは使用されません。日本語 Eclipse 3.7 Pleiades All in One Java はこのタイプです。具体的には「C:Program FilesJavajdk1.6.0_39jre」フォルダを、「C:adt-bundle-windows-x86eclipse」へコピーすることで実現できます。(参考サイト:【Java】JREだけ欲しい(実行環境だけ)

<方法2>Eclipseのショートカットに起動オプション「-vm」を設定して、起動に利用するJavaを明示する方法があります。(参考サイト:Eclipse3.0.1 起動オプションEclipse メモ

<方法3>Eclipseの設定ファイル「eclipse.ini」に「-vm」を設定して、起動に利用するJavaを明示する方法があります。(参考サイト:Eclipse 起動時に使用する Java VM を指定するEclipseの起動エラー(JVM terminated. Exit code=-1)、eclipse.ini

<方法4>バッチファイルを利用する方法があります。(参考サイト:EclipseでのAndroidアプリ開発を快適にする設定 Windows編環境変数JAVA_HOMEを変更して使用するJDKを切り替える

《3 パスの設定の確認》

パスをとおす前から開いたままの「コマンドプロンプト」画面には、新しい設定結果は反映されないので、確認するには新たに「コマンドプロンプト」画面を開く必要があります。(参考サイト:コマンド プロンプト: よく寄せられる質問

  1. 「Windows」キーを押しながら「R」キーを押して「ファイル名を指定して実行」画面を開き、名前欄に「cmd」と入力し、「OK」をクリックし、「コマンドプロンプト」画面を開きます。
  2. 「コマンドプロンプト」画面で、「echo %JAVA_HOME%」と入力します。「C:Program FilesJavajdk1.6.0_39」と表示されることを確認します。
  3. 「コマンドプロンプト」画面で、「java -version」と入力します。「java version “1.6.0_39″」と表示されることを確認します。「’java’は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示され、「C:Program FilesJavajdk1.6.0_39binjava -version」ならバージョンが表示される場合は、「Path」の変数値の「%JAVA_HOME%bin; 」の部分に誤まりがあります。
  4. 「コマンドプロンプト」画面で、「javac -version」と入力します。「javac 1.6.0_39」と表示されることを確認します。「’javac’は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示され、「C:Program FilesJavajdk1.6.0_39binjavac -version」ならバージョンが表示される場合は、「Path」の変数値の「%JAVA_HOME%bin; 」の部分に誤まりがあります。
  5. 「コマンドプロンプト」画面を閉じるには、「exit」と入力するか、通常のWindowsプログラム同様に画面右上角の「×」をクリックします。

期待の表示にならない場合は、「コマンドプロンプト」画面で、「path」あるいは「set」と入力します。環境変数の設定が表示されるので、意図した設定になっているかを確認します。

Windows Vista以降にある「where」コマンドは実行ファイルの検索ができます。(参考サイト:whereコマンドでファイルを探す) 「コマンドプロンプト」画面で「where java」、「where javac」とコマンドを入力すれば、「Path」に設定されているJavaのパスをチェックすることができます。パスが存在しない場合は「情報: 与えられたパターンのファイルが見つかりませんでした。」と表示されます。両コマンドとも1件もヒットしない場合は、公開JREはインストールされておらず、JDKのパスの設定に失敗していることになります。

以下は次のステップのSDKをインストールの完了後に確認できます。Eclipseだけで開発するなら確認は不要です。

  1. 「コマンドプロンプト」画面で、「emulator -version」と入力します。「Android emulator version 21.0 (build_id OPENMASTER-519525)」 「Android emulator version 21.0.1.0 (build_id OPENMASTER-543035)」(バージョンナンバーは適宜読み替え)と表示されることを確認します。「’emulator’は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示され、「C:adt-bundle-windows-x86sdktoolsemulator -version」ならバージョンが表示される場合は、「Path」の変数値での「tools」フォルダのパス指定部分に誤まりがあります。
  2. (emulatorのバージョン表示が出たままの場合は一旦「Enter」キーを押してから)「コマンドプロンプト」画面で、「adb version」と入力します。「Android Debug Bridge version 1.0.31」(バージョンナンバーは適宜読み替え)と表示されることを確認します。「’adb’は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示され、「C:adt-bundle-windows-x86sdkplatform-toolsadb version」ならバージョンが表示される場合は、「Path」の変数値での「platform-tools」フォルダのパス指定部分に誤まりがあります。

《4 SDK(Software Development Kit:ソフトウエア開発キット)をインストール》

SDKはZIPファイル形式で圧縮されているので、ダウンロードしてから解凍する必要があります。解凍には、Windows展開ウィザードを利用します。Eclipse起動時エラーの傾向と対策に示したように、Windows展開ウィザード以外の解凍ツールを利用すると、解凍に失敗する可能性があります。解凍に失敗すると、起動しようとしても、「An error has occured. See the log file (XXXX)¥eclipse:¥configuration¥(起動時のエポック秒).log」とメッセージが表示され起動できません。

SDKの解凍先は、「Program Files」フォルダ配下は避けるのが無難です。260文字を超える長いパス名となる可能性が増し、超えた場合に解凍に失敗することと、解凍できた場合でも、管理者権限なしでプラグインのインストールなどをしようとすると更新に失敗するからです。(参考サイト:Android SDKでライブラリのインストールが拒否される。

  1. Get the Android SDK の「Download the SDK ADT Bundle for Windows」をクリックします。
  2. 「Before installing the Android SDK, you must agree to the following terms and conditions.(Android SDKをインストールする前に、以下の契約条件に同意する必要があります。)」と画面がかわったら、「I have read and agree with the above terms and conditions(私は上記の条件を読んで同意しました)」にチェックをいれ、「32-bit」にチェックをいれ、「Download the SDK ADT Bundle for Windows」をクリックし、「adt-bundle-windows-x86.zip」をダウンロードします。(「64-bit」にチェックをいれた場合は、「adt-bundle-windows-x86_64.zip」がダウンロードされます。この場合JAVAも64ビット版の「jdk-6u39-windows-x64.exe」をダウンロードしておく必要があります。)
  3. 「adt-bundle-windows-x86.zip」を右クリックし、「すべて展開」をクリックします。
  4. 「圧縮(ZIP形式)フォルダの展開」画面が開いたら、「ファイルを下のファルダヘ展開する」欄を「C:」にします。
  5. 「完了時に展開されたファイルを表示する」にチェックを入れたまま「展開」をクリックします。展開が終了すると、展開先のローカルディスク「C:」が表示され、「adt-bundle-windows-x86」フォルダが作成されていることを確認できます。

SDKは、「SDK ADT Bundle」(Eclipse IDE with built-in ADT)と表現されるように Eclipse に ADT プラグインをインストールしたものになります。これ以降は Eclipse として記述します。

《5 Eclipseの日本語化》

Eclipseを日本語化しないなら、「C:adt-bundle-windows-x86」フォルダをダブルクリック→「eclipse」フォルダをダブルクリック→「eclipse.exe」をダブルクリックで、Android開発環境を備えた英語版のEclipseが起動しますが、日本語化するなら、Eclipse日本語化プラグインのPleiadesをインストールします。(参考サイト:PleiadesEclipse 3.x

これまでは「pleiades.zip」展開後の「readme」フォルダの「readme_pleiades.txt」 に従って plugins フォルダに配置していましたが、 今回は dropins フォルダに 配置してみます。(参考サイト:[Eclipse]p2のdropinsフォルダ

  1. MergeDoc ProjectのPleiades プラグイン・ダウンロードの最新版 1.3.5 をクリックして「pleiades.zip」をダウンロードします。
  2. ダウンロードした「pleiades.zip」を右クリックし、「すべて展開」をクリックします。
  3. 「圧縮(ZIP形式)フォルダの展開」画面が開いたら、「ファイルを下のファルダヘ展開する」欄を「C:adt-bundle-windows-x86eclipsedropinspleiadeseclipse」にします。
  4. 「完了時に展開されたファイルを表示する」にチェックを入れたまま「展開」をクリックします。
  5. 展開が終了すると「ファイルエクスプローラ」画面が開き、アドレス欄に「コンピューター>ローカルディスク(C:)>adt-bundle-windows-x86>eclipse>dropins>pleiades>eclipse」と表示があるので、「adt-bundle-windows-x86」の次のほうの「eclipse」をクリックします。
  6. 「C:adt-bundle-windows-x86eclipse」フォルダが開くので「eclipse.ini」ファイルを右クリック→「プログラムから開く」→「ワードパッド」をクリックします。「eclipse.ini」ファイルは、メモ帳で開くと1行で表示されてしまうので、ワードパッドを利用します。メモ帳で開くと改行されないのは、「eclipse.ini」ファイルの改行コードがCRになっていることが関係しています。参考サイトを以下に記します。
  7. 「eclipse.ini」ファイル最終行の下に「-javaagent:dropins/pleiades/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar=default.splash」の記述を追加します。文末に「=default.splash」を記述するかしないかで起動スプラッシュ画面が変わります。記述するとADTオリジナル版に、記述しないとPleiades版になります。(参考サイト:ADT Bundleのかっこいいスプラッシュ画面が表示されなくなった
  8. ワードパッドメニューの「ファイル」→「ワードパッドの終了」をクリックします。
  9. 「C:adt-bundle-windows-x86eclipseeclipse.ini への変更内容を保存しますか?」と問われるので、「保存する」をクリックします。

ワードパッドで編集すると改行コードがCR/LFになって保存されます。次回からはメモ帳で開いても適切に改行して表示されます。

私は、「eclipse.ini」ファイルの編集にサクラエディタを使用しています。「eclipse.ini」ファイルには漢字が使用されておらず半角文字だけなので、UTF-8(BOMなし)とShift_JISには内容に違いがありません。そこで初めて開くときはファイル形式がSJISとして表示されます。保存時に一度UTF-8で保存すると、次回からはUTF-8で開くか聞いてくるようになります。参考サイトを以下に記します。

ホバー表示の日本語化もしたい場合は、もうひと手間必要です。(参考サイト:Eclipse入門: 日本語APIドキュメントをローカル環境、及び、ホバー表示で使用する。Eclipseのホバー表示を日本語にしたいです。

《6 Eclipse 起動ショートカットの作成》

Eclipse は、起動を速くするためにプラグイン情報をキャッシュしますが、プラグインを更新したときは、キャッシュをクリアして起動する必要があるので、キャッシュをクリアする起動オプションを付与したショートカットをデスクトップに作成しておくと便利です。通常起動用と、クリーン起動用のショートカットを作成します。参考サイトを以下に記します。

  1. 「C:adt-bundle-windows-x86eclipse」フォルダの「eclipse.exe」を右クリックし、「プロパティ」をクリックします。(または「eclipse.exe」をクリックし、「Alt」キーを押しながら「Enter」キーを押します)
  2. 「全般」タブのセキュリティの「ブロックの解除」をクリックし、「OK」をクリックします。
  3. 「eclipse.exe」を右クリック→送る→デスクトップ(ショートカットを作成)をクリックします。デスクトップに「eclipse.exe – ショートカット」が作成されるので、今後通常起動用として利用します。
  4. デスクトップにできた「eclipse.exe – ショートカット」を右クリックし、「プロパティ」をクリックします。(または「eclipse.exe – ショートカット」をクリックし、「Alt」キーを押しながら「Enter」キーを押します)
  5. 「ショートカット」タブのリンク先欄に「 -showlocation」(-showlocation’の前に半角空白文字必要)を追記します。結果「C:adt-bundle-windows-x86eclipseeclipse.exe -showlocation」と記述します。「-showlocation」オプションを指定すると、ADTのタイトルバーにワークスペースのパスが表示されるようになります。Eclipseのワークスペースを切り替えて利用する場合にロケーションを判別しやすくなります。(参考サイト:eclipseで現在のワークスペースディレクトリを表示Eclipse/Tips
  6. 再度「eclipse.exe」を右クリック→送る→デスクトップ(ショートカットを作成)をクリックします。デスクトップに「eclipse.exe – ショートカット (2)」が作成されます。これをクリーン起動用に編集していきます。
  7. デスクトップにできた「eclipse.exe – ショートカット (2)」を右クリックし、「プロパティ」をクリックします。(または「eclipse.exe – ショートカット (2)」をクリックし、「Alt」キーを押しながら「Enter」キーを押します)
  8. 「ショートカット」タブのリンク先欄に「 -clean -showlocation」(’-clean’の前に半角空白文字必要)を追記します。結果「C:adt-bundle-windows-x86eclipseeclipse.exe -clean -showlocation」と記述します。
  9. 「全般」タブをクリックして、ショートカット名の「eclipse.exe – ショートカット (2)」を「eclipse クリーン起動」に書き換え、「OK」ボタンをクリックします。

その他の起動オプションについては、参考サイトを参照してください。(参考サイト:Advanced Topics in Running Eclipse

《7 Eclipse の起動》

Eclipseを起動しようとしたのに、エラー表示も何もでず起動の反応がない場合、「eclipse.ini」の書き換えに失敗している可能性があります。追加した「-javaagent:dropins/pleiades/~」の記述を削除してみて、日本語化しないバージョンが起動する場合は、記述に誤りがあります。「-javaagent:dropins/pleiades/~」のパスの指定に間違いがないか確認してください。

  1. 初回起動時は自動でクリーン起動になるので、「eclipse.exe – ショートカット」をダブルクリックします。Eclipse の起動スプラッシュイメージが表示されると同時に「キャッシュのクリーンアップ中」と表示されます。
  2. しばらく待つと(30秒位?)、ワークスペース・ランチャー画面が開き、「ADT は、ワークスペースと呼ばれるフォルダーにプロジェクトを保管します。このセッションに使用するワークスペース・フォルダーを選択してください。」と問われます。「ワークスペース」は任意のフォルダを指定しますが、よくわからなければ「..workspace」としてください。「この選択をデフォルトとして使用し、今後この質問を表示しない」にチェックを入れ、「OK」ボタンをクリックします。なお、「ワークスペース」に既存のものを指定した場合は、既存の「ワークスペース」が保持する文字コードなどの環境(以前にEclipse メニューの「ウィンドウ」→「設定」で設定したもの)を引き継ぐことになります。ワークスペースの参考サイトを以下に記します。
  3. Eclipse(ADT(Android Developer Tools))の「Welcome!」にかぶさるように「Android開発へようこそ」画面が表示され、使用統計をGoogleへ送信するか問われるます。「はい」「いいえ」どちらかを好きなほうを選択し「完了」ボタンをクリックします。この選択は、Eclipse メニューの「ウィンドウ」→「設定」→「Android」→「使用統計」→「使用統計をGoogleに送信する。」の画面で変更することができます。
  4. 起動初期画面の、「Android IDE」タブの「×」をクリックして閉じます。Eclipse のメイン・ウィンドウ(ワークベンチ)が表示されます。

Eclipse起動に使用されたJREは、Eclipseメニューの「ヘルプ」→「ADTについて」→「インストール詳細」→「構成」タブをクリックして表示される情報の、「-vm」の次の行を見ると確認できます。(参考サイト:Eclipse 起動時に使用されている Java VM を確認してみよう

《8 Eclipse の設定・確認》

主な設定は Eclipseをチューニング 設定方法 を参考にして下さい。

  1. Eclipse メニューの「ウィンドウ」→「設定」をクリックし、「設定」画面を開きます。
  2. 左側ペインで「一般(General)」(文字の左側にある三角印をクリックするか、文字をダブルクリック)→「エディター(Editors)」→「テキスト・エディター(Text Editor)」を選択します。右側ペインで、「行番号の表示(Show line numbers)」にチェックを入れます。(参考サイト:Eclipse 3.4の各種設定と利用方法~Eclipse 3.4入門~
  3. 左側ペイン(領域)で「一般(General)」→「ワークスペース(Workspace)」を選択します。右側ペインで、「テキスト・ファイルのエンコード」の「その他」にチェックを入れ、「UTF-8」を選択します。(参考サイト:android 文字コード
  4. 左側ペインで「一般(General)」→「外観」→「色とフォント」を選択します。右側ペインで、「基本」→「テキストフォント」ダブルクリック→「フォント」画面で「フォント名」を【MS ゴシック】、「文字セット」を【日本語】に設定して「OK」をクリックします。これをすることで、キーボードの¥(円マーク)を入力したのに(バックスラッシュ)で表示されてしまうということがなくなります。(参考サイト:バックスラッシュを入力したい
  5. 左側ペインで「Java」→「インストール済みのJRE」をクリックします。「jdk1.6.0_39」がチェックされていることを確認します。ここがJDKではなくJREになっていると、デバッグ時にJavaAPIソースが見れないので不便が生じます。
  6. 左側ペインで「Java」→「エディター(Editor)」→「折りたたみ」を選択します。右側ペインで、「折りたたみを使用可能にする」のチェックをはずします。
  7. 左側ペインで「Java」→「コンパイラー」をクリックします。「コンパイラー準拠レベル」が「1.6」であることを確認します。
  8. 設定画面の「OK」をクリックします。

「コンパイラー準拠レベル」のバージョンが「1.7」に対して「インストール済みのJRE」のバージョンが「1.6」の設定で実行しようとすると「Exception in thread “main” java.lang.UnsupportedClassVersionError: xxxx : Unsupported major.minor version 51.0」とエラーになります。(参考サイト:JavaアプリケーションのJavaバージョン)

対応方法はEclipse起動時エラーの傾向と対策内に書いたように、バージョンを揃えます。

《9 Android SDK Managerでコンポーネントを追加する》

「Android SDK マネージャー」で、SDKのコンポーネント(プラットフォームライブラリ、システム画像、サンプルコード、エミュレータのスキン、バージョン特有のツール)を追加したり削除したりできます。表示画面が狭く文字列が全部表示されない場合は、ドラッグすれば画面を大きくできます。ここでは例として、「Android 2.2(API 8)」をインストールしてみます。

  1. Eclipse メニューの「ウィンドウ」→「Android SDK マネージャー」をクリックします。
  2. 「Android SDK Manager」画面が開いたら、「Android 2.2(API 8)」をダブルクリックして展開し、「SDK Platform」、「Google APIs」にチェックを入れます。
  3. 「Install 2 Packages…」をクリックします。
  4. 「Choose Packages to Install」画面が開いたら、「Accept All」のチェックを入れてパッケージすべてに緑のレ点が入ったことを確認して、「Install」ボタンをクリックします。
  5. 画面下に「Downloading SDK Platform~」メッセージが表示され、緑の横棒が伸びていき、「Done loading Packages.」が表示されれば終了です。チェックを入れた行のStatus欄が「Not installed」から「Installed」に変わっているはずです。
  6. 「Android SDK Manager」画面を、通常のWindowsプログラム同様に画面右上角の「×」をクリックして閉じます。
  7. Eclipse メニューの「ファイル」→「再開」をクリックし、Eclipseを再起動します。再起動しないまま次のエミュレータを作成する手順へ進むと、更新が反映されずターゲットに「Android 2.2 – API Level 8」が表示されません。

インストール時にEclipseの「コンソール」ビューに出る「 DDMS files not found: C:adt-bundle-windows-x86eclipseplatform-toolsadb.exe C:adt-bundle-windows-x86eclipsetoolshprof-conv.exe C:adt-bundle-windows-x86eclipsetoolstraceview.bat  」「 Adb connection Error:既存の接続はリモート ホストに強制的に切断されました。 」「 Connection attempts: 1 」のメッセージが気になりますが、無視します。

「Souces for Android SDK」は ソースコードが表示されるようにする場合に必要です。参考サイトを以下に記します。

「Google APIs」は Google MAP を表示するアプリを開発する際に必要でしたが、Google Maps Android API v2からは必要なくなりました。 Androidアプリの署名<KeyStore Keytool AndroidDebugKey> を参考にしてください。

「Extras」の項目の「Android Support Library」は、旧バージョン(Android 1.6~2.3.x)上で新しいバージョンの機能を使用できるようにするための後方互換ライブラリです。参考サイトを以下に記します。

「Extras」の項目の「Google USB Driver」は、実機のAndroid端末をUSB接続してAndroidアプリの実行、デバッグなどを行えるようにするための汎用USBドライバです。 Android Google USBドライバ を参考にしてください。

プラットフォームによって実装されているAPI(Application Programming Interface:アプリケーション・プログラミング・インターフェース)の機能が異なりますが、差異のほぼすべてはAPIの機能追加なので上位互換性があります。バージョン2.2固有のAPIを使用しているアプリは、バージョン1.6を搭載した端末では動作しませんが、以降のバージョンであるバージョン2.3を搭載した端末では問題なく動作します。Androidアプリは、アプリが後で何らかの理由で削除されているAPIの一部を使用している場合を除き、以降のAndroidプラットフォームのすべてのバージョンで実行できます。

どのコンポーネントをインストールするかの開発ターゲットの選定には、Googleによるバージョン別のシェアが参考になります。(参考サイト:Platform Versions / Current Distribution + Historical Distribution

《10 AVD(Android Virtual Device:Android仮想端末) Managerでエミュレータを作成する》

AVD Managerの新規仮想デバイスの作成画面は、r21から刷新されています。レイアウトがどのように見えるか、Android Layout Editorにも示されます。ここでは、「Android 2.2(API 8)」のエミュレータを作成して起動する例を示します。画像解像度は Desire HD の 480 × 800 にしてみました。参考サイトを以下に記します。

  1. Eclipse メニューの「ウィンドウ」→「Android 仮想デバイス・マネージャー」をクリックします。
  2. 「Android 仮想デバイス・マネージャー」画面が開いたら、「新規…」をクリックします。
  3. 「新規 Android 仮想デバイスの作成(AVD)」画面が開いたら、以下のように入力し「OK」をクリックします。
    • AVD名 → DesireHD
    • 装置 → 5.1″ WVGA(480 × 800: mdpi)
    • ターゲット → Android 2.2 – API Level 8
    • Emulation Options: Snapshot → チェックする
  4. 「Android 仮想デバイス・マネージャー」画面の仮想デバイスのリストに、作成された「DesireHD」が表示されます。行をダブルクリックで「AVD詳細」画面が開くので、設定を確認することができます。

AVD名には、半角英数字、「.(ドット)」、「_(アンダーバー)」、「-(ハイフン)」が使えます。スペース(空白)を入れることはできません。使えない文字が含まれていると「OK」ボタンが有効になりません。

装置 は、以前はスキンと呼ばれていたものにあたります。LCD(Liquid Crystal Display:液晶ディスプレイ)サイズ・解像度、外観を設定します。参考サイトを以下に記します。

ターゲット は、Android SDK Managerで「Installed」になっているPlatformが選択可能なものとして表示されます。インストールPlatformを更新した場合、表示への反映はEclipse再起動後になります。

CPU/ABI は、エミュレーションするCPUの種類で、プラットフォーム4.0以降で関係します。CPUのSystem Imageをインストールしていない場合はグレーアウトして選択できません。(参考サイト:Android開発の第一歩!「Hello World」を作成する方法をなるべく簡単に(基本編)

Snapshot は、スナップショット機能を利用したい場合にチェックします。参考サイトを以下に記します。

現実の端末(実機)をソフトウェアで表現し、Androidアプリを実行できるのが仮想端末です。AVD Manager で実機の仕様に沿った設定をすることができ、アプリのほとんどの動作確認をすることができます。Google Play 公開前に複数の仮想端末上で動作テストをおこなっておくと、機種の違いによる問題を未然に発見することができます。オーディオやビデオの再生や、エミュレータのブラウザを起動してインターネットに接続することもできます。データ接続の確立や切断をシミュレートすることもできます。スマートフォン(スマホ)を想定して、かかってくる電話の呼び出しをシミュレートすることもできます。参考サイトを以下に記します。

《11 エミュレータを起動する》

  1. 「Android 仮想デバイス・マネージャー」画面で、先ほど作成した「DesireHD」をクリックし、「開始…」をクリックします。「起動オプション」画面が開きます。
  2. 「画面のサイズに表示をスケールする」は、デフォルトではチェックがはずれています。エミュレータ画面の大きさを実機と同じにするには、「実際のサイズに表示をスケールする」にチェックを入れます。「画面サイズ」は、エミュレータ作成時に装置欄で設定したものが入力されているのでそのままとし、「モニターdpi」右の「?」をクリックします。「モニター密度」画面が開いたら、「画面サイズ」欄に使用パソコンの画面サイズを入力します。「レゾリューション」欄は、「スタート」ボタン→「コントロール パネル」→「個人設定」→「画面の設定」 の解像度の値が自動設定されているはずです。設定ができたら、「OK」をクリックします。「モニターdpi」に自動計算された数値が入り、スケールが設定されます。スケールは、チェックを入れなかった場合のデフォルトサイズからの縮尺度をあらわします。
  3. 「スナップショットから起動する」と「スナップショットへ保管する」は、デフォルトのチェックをいれたままにします。
  4. 「起動」をクリックします。
  5. 黒い背景に白字で小さい字で「ANDROID」と表示された状態が40秒ほど、大きい字で「ANDROID」と表示された状態が50秒ほど続いた後、初期画面が起動します。
  6. 「Android 仮想デバイス・マネージャー」画面を閉じるには、通常のWindowsプログラム同様に画面右上角の「×」をクリックします。

エミュレータによっては、デフォルトのまま起動するとパソコンの画面からはみだすことがあります。参考サイトを以下に記します。

《12 エミュレータの表示言語を日本語にする》

  1. エミュレータ画面右のキー群の上から2つ目左から2つ目の「MENU」キーをクリックします。
  2. エミュレータ画面下にMENUがポップアップするので、右下の「Settings」をクリックします。
  3. 上から11番目の「Language & keyboard」をクリックします。
  4. 1番上の「Select language」をクリックします。
  5. 言語候補画面が開いたら、クリックしながらマウスを上へ移動(スワイプ / ドラッグ)して、言語候補最後尾にある「日本語」をクリックします。スワイプとは画面上を掃くような動作をすることです。(参考サイト:タッチパネルを操作する方法スワイプやピンチアウトってどんな操作?【iPhone操作一覧】

《13 エミュレータの時刻を日本時間にする》

  1. 上記5.までの手順に続いて、エミュレータ画面右のキー群の上から2つ目左から3つ目の「戻る」(矢印がUターンしているもの)キーをクリックします。
  2. クリックしながらマウスを上へ移動(スワイプ / ドラッグ)して、最後尾から2つ目の「日付と時刻」をクリックします。
  3. 「自動」の項目のチェックをはずします。グレーアウトしていた「タイムゾーンの選択」が有効になります。
  4. 「タイムゾーンの選択」をクリックします。
  5. クリックしながらマウスを上へ移動(スワイプ / ドラッグ)して、「日本標準時(東京)GMT+9:00」をクリックします。
  6. 「戻る」キーを2回クリックすると、初期画面へ戻ります。

《14 スナップショット(バックアップ)を取っておく》

  1. 通常のWindowsプログラム同様に画面右上角の「×」をクリックして閉じます。スナップショット機能により。日本語化と日本時間にあわせた状態が保存されます。設定を保存する関係で、閉じるまでに少し時間がかかります。

「.android」フォルダに「DesireHD」フォルダができています。「DesireHD」フォルダと、「DesireHD.ini」ファイルを別の場所にバックアップを取っておけば、この先万が一AVDの挙動がおかしくなっても、バックアップを上書きしてこの状態に回復できます。(参考サイト:低スペックPCでAndroid開発(ちょっとしたネタ帳)

《15 エミュレータを再起動する》

  1. 再度、「DesireHD」をクリック→「開始…」をクリックします。
  2. 「起動オプション」が開いたら、「スナップショットから起動する」にチェックをいれ、今回は「スナップショットへ保管する」のチェックをはずします。
  3. 「起動」をクリックします。
  4. 初回起動時に「スナップショットへ保管する」にチェックをいれていているので、10秒ほどで再起動します。試しに「スナップショットから起動する」のチェックをはずして「起動」をクリックすると、30秒ほど要して、画面ロックがかかって起動します。画面ロックを解除するには、左の鍵マークをクリックしながらマウスを右へ動かします。

《16 ブラウザを起動してみる》

  1. エミュレータ画面下一番右の「地球」アイコンをクリックします。
  2. Google検索が起動します。検索窓に適当な検索語を入れると、ブラウザ機能が有効に働いていることが確認できます。
  3. 「戻る」ボタンをクリックすると、初期画面(ホーム画面)へ戻ります。「ホーム」 ボタンをクリックしても初期画面(ホーム画面)になりますが、「ホーム」 ボタンをクリックした場合は、アプリをバックグラウンドで実行中のまま、一時的に初期画面(ホーム画面)に戻った状態です。「戻る」ボタンをクリックした場合は、アプリを本当に終了させる違いがあります。参考サイトを以下に記します。

仮にインターネットに接続できない場合は、Proxy経由で外部に接続する設定が必要です。参考サイトを以下に記します。

《17 エミュレータを操作してみる》

  1. エミュレータ画面の向きをかえるには、「左側のCtrl」キー(「右側のCtrl」ではダメです)を押しながら「F11」(または「F12」)キーを押します。(押すたびに、縦⇒横⇒縦⇒横と表示が切り替わります。)
  2. エミュレータ画面を全画面表示するには、「左側のAlt」キーを押しながら「英数キー側のEnter」キーを押します。(「右側のAlt」キーや「テンキー側のEnter」キーではダメです。元の大きさにに戻すには、もう一度「Alt」キーを押しながら「Enter」キーを押します。)
  3. 最近使ったアプリを表示させるには、エミュレータ画面右のキー群の上から2つ目左から1つ目の「HOME」ボタン(家のマーク)を長押し(タッチアンドホールド / ロングタップ / ロングクリック)します。
  4. 初期画面へ戻るには、エミュレータ画面上の「戻る」ボタンをクリックします。
  5. 終了するには、通常のWindowsプログラム同様に画面右上角の「×」をクリックします。

「スナップショットへ保管する」にチェックをいれていて、エミュレータ画面の向きが横向きのまま終了すると、次回「スナップショットから起動する」にチェックをいれて起動したときに、エミュレータ画面の向きは縦向きなのに、中の表示は横向きになって表示されるので注記しておきます。

《18 Androidアプリケーションを作ってみる》

  1. Eclipse メニューの「ファイル」→「新規」→「Android アプリケーション・プロジェクト」をクリックします。(以前は Android Project となっていたものに相当します。本などを見て探すと「Androidプロジェクトがない~」と思うかもしれませんが、読み替えるようにします) 表示がない場合は、パースペクティブが「Java」以外の「Java EE」や「リソース」になっているかもしれません。パースペクティブを「Java」にしてみてください。それでも表示されない場合は、Eclipse メニューの「ウィンドウ」→「パースペクティブのカスタマイズ」→ 「ショートカット」タブ→「ショートカット・カテゴリー」で 「Android」にチェックが外れていると思うので、チェックを入れてみてください。参考サイトを以下に記します。

    または、「ファイル」→「新規」→「プロジェクト」→「Android」→「Androidアプリケーション・プロジェクト」、あるいは「ファイル」→「新規」→「その他」→「Android」→「Androidアプリケーション・プロジェクト」とすれば、選択できると思います。ツールバーのアイコン群1番左の、「新規」アイコンをクリックする方法もあります。(参考サイト:AndroidでHelloWorld(その1)

  2. 「新規 Androidアプリケーション」画面が開いたら、「Application Name」欄に「Hello」と入力します。
  3. 「Project Name」欄に「Hello」が「Package Name」欄に「com.example.hello」が自動で設定されます。「接頭部 ‘com.example.’ はプレースホルダーとして意図されており、使用すべきではありません」と警告メッセージが表示されます。プレースホルダーとは、正式なものが定まるまでの場所取りという意味です。「パッケージ名の最初の文字列’com.example.’は、仮のものですよ。正式な名前を決めたら置き換えてくださいね。」という意味です。プレースホルダーを置き換える際は、プログラマが属する会社や組織のインターネットドメイン名を逆に並べたものを使うことが推奨されています。Androidはパッケージ名でアプリケーションの識別を行っているので、世界で唯一であることが保証されているインターネットドメイン名を利用することで、他の開発者とパッケージ名が重複しないことが図れます。例えば、保有インターネットドメイン名が「abcd.co.jp」なら、「jp.co.abcd.hello」というパッケージ名を命名します。当サイトの場合であれば、「com.andr0o0id.hello」とすることになります。「com.example」から始まるパッケージ名のままGoogle Play に アップロードしようとすると「The package name of your apk may not begin with any of the following values: [com.android, com.google, android, com.example」とエラーになります。Google Play にアップロードするまでは、暫時このまま「com.example.hello」として、警告を無視して先へすすめても問題ありません。なお、パッケージ名には最低1つ以上の.(ドット)を含める必要があります。参考サイトを以下に記します。
  4. 「次へ」→「次へ」→「次へ」→「次へ」→「完了」をクリックするだけで、実行すると「Hello world!」と表示するアプリが自動生成されます。(参考サイト:Androidアプリ開発における Target SDK, Minimum Required SDK, Compiler SDK の違い
  5. 左側の「パッケージ・エクスプローラ」に「Hello」プロジェクトがあらわれ、「Hello」プロジェクト配下の「res」→「layout」→「activity_main.xml」が選択された状態になっており、右側の領域にレイアウトエディタが開きます。「Android 4.2」で実行時のイメージが表示されます。「res」フォルダは、Androidアプリケーションで使用する画像、レイアウトや文字列といったリソースを格納する場所です。(参考サイト:AndroidでHelloWorld(その2)Android Eclipseでの新規作成プロジェクトを読み解いてみるさあ!!始めよう!!(プロジェクトの説明)
  6. 実行時のイメージの上の「構成変更ツールバー」(アイコン群並んでいるもの)の一番右のドロイドくんアイコン(17)をクリックし、「API 17: Android 4.2」から「API 8: Android 2.2」に選択を変更すると、実行時のイメージを「Android 2.2」のものに切り替えることができます。
  7. アプリケーションの表示レイアウトを記述する「activity_main.xml」のソースを表示するには、「Graphical Layout」タブ右隣の「activity_main.xml」タブをクリックして、レイアウト表示モードから、 ソースコード表示モードに切り替えます。
  8. アプリケーションの構成を記述するManifestファイルが「AndroidManifest.xml」です。全てのアプリのルートディレクトリに必ずなくてはならない重要なファイルです。バージョン番号、バージョンコード、パッケージ名、パーミッションなどのメタ情報を記述します。 アプリ使用前に、PackageManagerによって読み込まれます。 ソースを表示するには、「Hello」プロジェクト配下の「AndroidManifest.xml」をダブルクリックし、表示された Android Manifest 下部の「Manifest」タブ一番右の「AndroidManifest.xml」タブをクリックします。参考サイトを以下に記します。
  9. アプリケーションの挙動を記述する「MainActivity.java」ソースを表示するには、「Hello」プロジェクト配下の「src」をダブルクリック→「com.example.hello」をダブルクリック→「MainActivity.java」をダブルクリックします。「src」フォルダは、Javaソースコードを配置する場所です。
  10. アプリケーションに表示する文字を記述する「strings.xml」のソースを表示するには、「Hello」プロジェクト配下「res」→「values」をダブルクリック→「strings.xml」をダブルクリックし、表示された リソース要素 下部の「リソース」タブ隣の「strings.xml」タブをクリックします。
  11. 「strings.xml」を修正して、表示されるメッセージを「こんにちは!」に変更してみようと思います。「<string name=”hello_world”>Hello world!</string>」の「Hello world!」の部分を修正して、「<string name=”hello_world”>こんにちは!</string>」と書き換えます。ソースを書き換えると「strings.xml」タブが「*strings.xml」に変化します。
  12. Eclipse メニューの「ファイル」→「保管」をクリックします。(またはフロッピィディスクマークのアイコンをクリックします) 「*strings.xml」となっていたのが「strings.xml」に変化します。

Webアプリの開発経験者なら、Webを使った「例え話(アナロジー)」でAndroidアプリの開発用語を説明しているサイトが参考になります。(参考サイト:WebアプリとAndroidアプリのアナロジー (「Androidのアレは,Webで例えるなら○○だ」)

レイアウトXMLに記述するのが面倒な方は、こちらのサイトが参考になります。(参考サイト:AndroidのUIで,レイアウトXMLの記述を簡素にするための,7つの基礎知識

これからAndroidアプリ開発をすすめるにあたって、参考になるサイトを以下に記します。

《19 AndroidアプリケーションをDesireHDエミュレータで実行する》

  1. 「Hello」プロジェクトを右クリック→「実行」→「Android アプリケーション」をクリックします。
  2. 「こんにちは!」と表示されればOKです。

「Hello」プロジェクトを右クリック→「実行」→「実行の構成」→左ペインAndroidアプリケーション配下に「Hello」プロジェクトが作成されているのでクリック→右ペイン「ターゲット」タブをクリック。以上で設定されたものが確認できます。

いったん設定後は、「Hello」プロジェクトを選択した状態でツールバーのアイコン群左から10番目の「実行」アイコンをクリック(または「Ctrl」キー+「F11」)で、実行できます。

エミュレータでアプリケーションが起動済みで、ソースに変更が無いまま実行しようとすると、「警告: Activity not started. its current task has been brought to the front」とエラーになります。エミュレータ画面で「戻る」(矢印がUターンしているもの)キーをクリックして、一旦アプリケーションを終了してから実行します。

XMLファイルを選択した状態で「実行」すると、「パッケージ・エクスプローラー」欄に「選択していたXMLファイル名.out.xml」ファイルが意図せず作成され、コンソールタブ画面に「Error in an XML file: aborting build.」とエラーが表示されます。例えば「Hello」プロジェクトを選択した状態で「実行」するべきところを、「strings.xml」を選択した状態で「実行」すると、「strings.out.xml」ファイルが作成されこのエラーになります。対処法は、まず作成された「strings.out.xml」のタブの「×」をクリックして閉じます。次に、「パッケージ・エクスプローラー」欄の「strings.out.xml」を右クリック→「削除」→「OK」をクリックして削除します。タブを閉じ忘れて「’削除’のりファクタリングの処理中に例外がキャッチされました。」とメッセージが出た場合は「中断」を選択して削除をやり直します。その後に、「Hello」プロジェクトを選択してから実行します。または、エラーだけ解消したい場合は、Eclipse メニューの「プロジェクト」→「クリーン」→「OK」をクリックします。(参考サイト:レイアウト画面の作成、割り勘アプリでAndroidアプリ開発を体験

「emulator-5554 disconnected!」となる場合は、DDMSパースペクティブで「Reset adb」を実行します。(参考サイト:emulator-5554 disconnected!

コンパイルエラーの場合「問題」ビューに情報が表示されるので、「問題」タブをクリックして確認します。例えば、さきほどの「Error in an XML file: aborting build.」の場合は、「早すぎたファイル終わり。 strings.out.xml」とエラーの原因となったリソースが表示されており、行をダブルクリックすると、その箇所へ飛ぶことができます。

1回目は起動したのに、2回目起動しないといった場合などの参考サイトを紹介しておきます。(参考サイト:AndroidのHello Worldアプリが、というか、エミュレータがエラーでうまく動かない方へ。その2。

スナップショットを保存したくない場合は、先に「DesireHD」エミュレータを「スナップショットへ保管する」のチェックをはずして起動しておきます。

Eclipseを一旦終了して起動しなおすと、実際はソースにエラーがなくても、ソースにエラーがあることを示す「赤の×」がたくさんついて起動することがあります。たとえば、「’Runnning Android Lint’ に問題が発生しました。」とポップアップが出たりしますが、閉じてかまいません。また、「問題」ビューを見ると「Unable to reseolve target ‘android-17′ until the SDK loaded.」や「ビルド・パスが不完全であるため、プロジェクトはビルドされませんでした。」といった表示が出ていたりしても、10秒ほどで自然に「赤の×」表示が消えるので、少し待つようにします。

《補足》

Eclipseメニューバーに「Android SDK マネージャー」や「Android 仮想デバイス・マネージャー」(AVD マネージャー)のアイコンが表示されなかったり、Eclipse メニューの「ウィンドウ」に「Android SDK マネージャー」や「Android 仮想デバイス・マネージャー」(AVD マネージャー)が表示されなかったりする場合、Eclipse メニューの「ウィンドウ」→「パースペクティブのカスタマイズ」→ 「コマンド・グループの可用性」タブで 「Android SDK および AVD マネージャー」のチェックが消えている可能性があるので、チェックを入れます。(参考サイト:Eclipse の Window メニューに Android SDK / AVD Manager が表示されない時

エミュレータ操作中に、「emulator-arm.exeは動作を停止しました 問題が発生したため、プログラムが正しく動作しなくなりました。プログラムは閉じられ、解決策がある場合は Windows から通知されます。」とエラーがでた場合は、メモリ不足が考えられます。コンピュータを再起動してみるか、エミュレータ作成時の Memory options の数値を調整する必要があります。

Nexus7エミュレータを作成しようとして、Eclipse メニューの「ウィンドウ」→「Android 仮想デバイス・マネージャー」をクリックし、「Device Definitions」タブをクリックし、「Nexus 7 by Google」をクリックし、「AVDの作成」をクリックし、ターゲットを「Android 4.2 – API Level 17」とした時の Memory options の規定値は RAMサイズ→1024 で VM Heapサイズ→32 となりますが、この設定で作成したエミュレータを起動しようとしたところ上記の「emulator-arm.exeは動作を停止しました」エラーが発生しました。「Failed to allocate memory: 8」とでることもあるようです。RAMサイズ→768 にすることでエラーが発生せず起動できるようになりました。

最近気づいたのですが、Android SDK Tools Rev 22.0.1 では、AVD作成時に「On Windows emulating RAM greater than 768M may fail depending on the system load. Try progressively smaller values of RAM if the emulator fails to launch.(Windowsの場合、エミュレータのRAMが768Mよりも大きいと、システムの負荷により失敗することがあります。エミュレータが起動に失敗した場合、RAMの値を徐々に小さくしてみてください。)」と案内が表示されるようになっていました。(2013/06/13追記)(参考サイト:android エミュレーターがやっぱり動かない。

Eclipse起動時エラーの傾向と対策Androidエラーの傾向と対策プログラミング参考サイト なども参考にしてみてください。

本サイトの記述をここまでお読みいただきありがとうございました。最後に有益な他サイト様を紹介いたします。最初に推薦しろよというツッコミがありそうですが、ご容赦願います。

以上です。

アクセラレータ(ShortCut Keys)

よく使っているショートカットキーなど…
キーボードからマウスへ持ち替える回数が減り、作業が加速します。

Windowsキーを使用するショートカット

Windowsキー+D
デスクトップを表示します。
※ もう一度操作するとデスクトップ表示前に復元します。「Windows」キー+「M」をしたあとの「Windows」キー+「D」では復元しません。

Windowsキー+E
マイコンピュータをファイルエクスプローラで開きます。

Windowsキー+F
ファイルやフォルダの検索画面が開きます。

Windowsキー+L
コンピュータをロックします。

Windowsキー+M
開いているすべてのウィンドウが最小化されます。

Windowsキー+R
「ファイル名を指定して実行」画面が開きます。
cmdといれてコマンドプロンプト
mspaintといれてペイント
calcといれて電卓起動など良く使ってます。
(参考サイト:「ファイル名を指定して実行」で使用できるコマンド
ところで「.」(ドット)とだけいれて実行でファイルエクスプローラが開くのは知ってました?

Windowsキー+Pauseキー
「システムのプロパティ」画面が開きます。

その他ショートカット

Ctrl+A
全ての範囲を選択する

Ctrl+C
選択範囲をクリップボードへコピーする
「Ctrl+C」と「Ctrl+V」のコンボは高使用率!!毎日お世話になってます。

Ctrl+D
ブラウザのお気に入りに追加する
「これは!」というサイトを見たらこのコマンドをポチッとな。

Ctrl+P
印刷する

Ctrl+V
クリップボードの内容を張り付けする

Ctrl+X
選択範囲を切り取りクリップボードへ保管する
「x」をはさみとイメージして、切り取りって覚えるとコマンドを忘れないっての見たことがあります。

Ctrl+Y
直前の操作を再実行する

Ctrl+Z
アンドゥ(undo)・元に戻す
「あー!やっちゃった!!」のときに「待った!」ができて助かってます。

Esc・Del・Functionキー

Esc
操作を取り消しする

Del
選択対象をゴミ箱へ移す

F1
HELP

F2
選択対象の名前を変更する

F5
ブラウザの表示を更新をする
表示時間短縮のために、前回サイトを参照した内容をキャッシュに保存し、参照後に変更されたコンテンツのみをダウンロードする仕組みがあります。
F5のみを押した場合はキャッシュを表示する場合があります。
Ctrl+F5で必ずサーバに最新のデータを確認しに行きます。
サイト更新が反映されない場合はキャッシュファイル削除も試してみます。(参考サイト:~WindowsXP のメンテナンスをしましょう~インターネット一時ファイルを削除する方法

※リンクをクリックすると「Fix it」のインストールガイドが出ますが、とりあえず閉じるを選択してください)

F6
選択対象をひらがなに変換する

F7
選択対象をカタカナに変換する

F8
選択対象を半角カタカナに変換する

F9
選択対象を全角英数字に変換する

F10
選択対象を半角英数字に変換する
個人的には結構な使用率。「google」と打ったつもりが漢字モードのままで「ごおgぇ」となっていても、打ち直さずそのまま「F10」でにっこりできます。「ごおgぇ」のままでも開けますけどね…

その他ショートカット

Ctrl+Sift+Esc
タスクマネージャを開く
Ctrl+Alt+Delete経由よりも一発で開けます。

Alt+Tab
ウインドウを切り換える、アイコンまたはサムネイルを表示

Alt+Esc
アプリケーションを切り替えする

Alt+F4
使用中のアプリケーションを終了する

Alt+←(またはBackspace)
ブラウザ利用中のとき前画面へ戻る

Alt+→
ブラウザ利用中のとき次画面へ進む

Alt+PrintScreen
アクティブ・ウィンドウをクリップボードへコピーする
画面キャプチャーを撮りたいとき、パソコンの全画面ではなく、意図したウィンドウだけ取り込めるのでとっても便利に使ってます。

EclipseとJREとJDK

JavaのJREとJDKは何が違うのか…、

一言で言えば、「Javaで作られたプログラムを動かすソフト」がJRE(Java Runtime Environment:Java実行環境)で、「Javaでプログラムを作るソフト」がJDK(Java Development Kit:Java開発キット)です。(参考サイト:http://javapapers.com/core-java/differentiate-jvm-jre-jdk-jit/

JRE とJava SE プラットフォームの違い、JREとJDKの違い、Java Enterprise Edition (Java EE) とは何かについて、ORACLE の Java ヘルプセンター 一般的な質問 の2ページ目の Java 技術情報の入手方法 に書かれています。

Java 開発者コミュニティ内では、習慣的に、Java の開発キットを「JDK」、実行環境を「JRE」と呼んでいます。(参考サイト:JavaTM SE 6 のプラットフォーム名とバージョン番号

Javaのアップデート番号は、CPU(クリティカル・パッチ・アップデート)を含むリリースは奇数番号、限定されたアップデートの場合は偶数番号です。Critical Patch Updatesはオラクル製品のセキュリティ脆弱性の修正を公開する基本の方法で、1月、4月、7月、10月の17日に最も近い火曜日に公開されますが、緊急の場合はこの限りではありません。(参考サイト:【重要】 Javaのセキュリティ脆弱性に対応するアップデート・リリース(1/13版)のお知らせCritical Patch UpdatesとSecurity Alerts

なお、32ビットオペレーティングシステムと64ビットオペレーティングシステムでは、インストールするファイルが違ってきます。「Windows」+「Pause」キーを押して「システム」画面を開くと、「システムの種類」欄で使用しているパソコンのオペレーティングシステムが32ビットか64ビットかを確認することができます。(参考サイト:コンピューターで実行されている Windows オペレーティング システムが 32 ビット版か 64 ビット版かを確認する方法32ビットと64ビットのどちらのシステムがインストールされているのかを確認する方法を教えてください。

また、64 ビットオペレーティングシステムでも、Webブラウザが32 ビット版の場合があります。(参考サイト:64 ビット Windows オペレーティングシステムで使用する場合にダウンロードする Java のバージョンWindows 8でJavaを使用するためのトラブルシューティングのヒント

64 ビットオペレーティングシステムで、プロセスが 64 ビットネイティブモード/32 ビット互換モードのどちらで動作しているのかは、タスクマネージャで判別できます。(参考サイト:64 ビット Windows OS の基本知識

Javaには、コンピューター上でJavaアプリを動かす「ランタイム」と、ソフトウエアをウェブブラウザ上で動かすときに使われる「プラグイン」の機能があります。(参考サイト:Javaってそもそも何なのか? セキュリティー対策としての「無効」設定

Javaをアップデートするとそのままではアプレットが動かなくなることがあります。(参考サイト:「Java」アプレットを実行する JRE のバージョンを指定する方法「Java SE 6完全攻略」番外編 Java SE 6u10の新機能 その8次世代の Java Plug-in とは何ですか ? また旧バージョンとこの新しい Java Plug-in を切り替えるにはどうすればよいですか ?コントロールパネルから Java を使用可能にするにはどうすればよいですか。

Javaアプリケーションを起動して「A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse.」(Eclipse を実行するためには、Java実行環境(JRE)かJava開発キット(JDK)が必要です。)とか、「Java not found in your path. Checking if Java is installed…」(Javaはpathにありません。 インストールされているならPathを確認してください)とか、「The registry refers to a nonexistent Java Runtime Environment installation or the runtime is corrupted.」(設定情報は存在しないJava実行環境を参照しているか、もしくはJava実行環境が破損しています。)などと表示される場合は、Javaのインストールに失敗しているか、インストール後にパスをとおす作業(Pathの設定)がされていないことなどが考えられます。

Javaのインストール中に、「ダウンロード・エラー: JAVA_SP.DLLが壊れています」とメッセージ出る場合は、オフライン・インストーラを試して下さい。(参考サイト:Javaが起動しない。ダウンロード・エラー: JAVA_SP.DLLが壊れています、1305、2755、1606など

Javaのインストールがうまくいかない場合、キャッシュをクリアすることで改善することがあります。(参考サイト:IE と JRE のキャッシュクリア手順書Javaのキャッシュをクリアするにはどうすればよいですか。Web ブラウザのキャッシュを消去する方法

どうしてもうまくいかない場合は、いったんJavaをアンインストール(削除)してから再インストールを試すのもひとつの方法です。Javaをアンインストールする場合は、フォルダやファイルを直接削除するのではなく、コントロールパネルでアンインストールするようにします。(参考サイト:Windows コンピュータから Java をアンインストールするにはどうすればよいですか?

アンインストールに失敗した場合は、以下を参考にして下さい。(参考サイト:Java のアンインストール後に Java のリストを Windows から削除するにはどうすればよいですか。Java のアンインストールが失敗した後にレジストリをクリーンアップするにはどうすればよいですか。Java VMの削除Java の古いバージョンのファイルを削除するJava アンインストールに失敗したとき手動削除する場所Windows8を使っているのですが、Javaのインストールがきちんとできてなくて「javac」はできたのに「java」は実行できませんでした

本文中のバックスラッシュ(\)で表示されている半角文字は、円マーク(¥)と見てください。”コマンドプロンプト”画面などにコピペすればバックスラッシュが円マークになります。(参考サイト:バックスラッシュを入力したい

”コマンドプロンプト”画面を開くには、「Windows」キーを押しながら「R」キーを押して”ファイル名を指定して実行”画面の名前欄に「cmd」と入力し、「OK」をクリックします。

 

JRE(Java Runtime Environment:Java実行環境)

JREは、Javaのサイトからインストールできます。(参考サイト:Javaをインストールするには

64ビットオペレーティングシステムでは、32ビット版JREか64ビット版JREかを意識する必要があります。(参考サイト:64bit環境にJavaランタイムをインストールするときの注意事項

Javaのサイトからインストールするものは、後述のJDKインストールで公開JREと表現しているもので、通常の新規インストールやアップデートでは、Java7のインストールに誘導されます。Java6をインストールするにはJavaアーカイブからになります。(参考サイト:Java 6の最新バージョンはどこで入手できますか。

複数のJREをインストールした場合、最新のバージョンの方が「CurrentVersion」に設定され、システムのデフォルトJava プラットフォームとなります。(参考サイト:JRE Notes

Webをブラウズしていて「Javaをインストールしてください」といわれてインストールするJavaプラグインは、JRE のコンポーネントです。Windows レジストリ (HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft 上) に登録されます。(参考サイト:複数バージョンの JRE および Java Plug-in のサポート64 ビット バージョンの Windows でシステム レジストリを表示する方法

インストールしたJavaをブラウザ内で有効にするには、ブラウザをいったん終了してから再起動する必要があります。 (参考サイト:どうすれば手動で Java をダウンロードして Windows コンピュータにインストールできますか。

Java.comのJava のバージョンの確認サイトでは、インストール済みのJREのうちで、最も新しいバージョンを検出します。複数インストールされている場合の複数のバージョン表示はできません。 (参考サイト:Java Runtime Environment(JRE)のバージョンを調べる

インストール済みのJREは、デスクトップの「スタート」→「コントロールパネル」→「Java」→「JavaコントロールパネルのJavaタブ」→「表示」で確認することができます。複数のJREをインストールしている場合、有効にしたいものにチェックをいれることで、WebブラウザのJavaプラグインとしてどれを利用するか使い分けができます。(参考サイト:Java コントロールパネル

JREは、JVM(Java Virtual Machine:Java仮想マシン)、Javaクラスライブラリ(再利用可能なコードの集まり)、Javaアプリケーション起動プログラムといったJavaアプレットやJavaアプリケーションの実行に必要なソフト、Java Web Startをパッケージ化したものです。JRE、Java Web Startそれぞれのバージョンが古いときは自動的にアップデートされます。(参考サイト:Java Web Start とは何ですか。また、どうやって起動しますか。Java Web Start クライアント・サイドの Java アプリケーションの開発と配布Windows7でJavaの自動アップデートを無効にする

自分の作成したJavaアプリケーションと共に再配布することが可能です。(参考サイト:ライセンスと配布に関する FAQライセンス変更によりJDK/JREが再配布可能にSUN MICROSYSTEMS, INC. バイナリコードライセンス契約書Oracle、Linux ARM用JDKおよびMac OS X用JREをリリース、J2SE Runtime Environment が付属するアプリケーションの配布Javaデスクトップ・アプリケーションのパッケージ化と配布

JREだけではJavaのソースコードをコンパイルできないので、Javaアプリケーションの開発はできません。

 

JDK(Java Development Kit:Java開発キット)

JDKは、Java アプレットやJava アプリケーションの開発に必要です。Java SE Downloadsのサイトからインストールできます。(参考サイト:JDKのダウンロードJava(JDK)ダウンロードとインストールWindowsユーザーのための超入門・Java開発環境構築(1)

Java は、当初は OAK と呼ばれていましたが、1995 年に Java プログラミング言語という名前に変更されました。Javaは、1998年12月のバージョン1.2から”Java 2 Platform”と称し、また、バージョン1.5 から製品バージョンは5.0 と表記するようになりました(ただし、内部バージョン表記は 1.5 のまま)。その後2005年5月にJava2の名称を廃止し、”Java 2 Platform” から”Java Platform” に改め、バージョン末尾の “.0″ をつけなくなりました。JDKは、1.1までJDK(Java Development Kit)、1.2からSDK(Software Development Kit )、1.5.からまたJDKと称して、JDK1.0 → JDK1.1 → J2SE(Java 2 Platform、Standard Edition)1.2SDK → J2SE1.3SDK → J2SE1.4SDK → J2SE5.0SDK(JDK5) → Java SE 6.0(JDK6) → Java SE 7(JDK7)と変化してきたので、過去の資料をみると混乱すると思います。(参考サイト:Java2Java

JDKには、コンパイラーのjavac、Javaのライブラリファイルを生成するjar、JavaのソースコードからHTML形式のAPI仕様書を生成するjavadocなどの開発ツール、クラスライブラリ、ソースコードアーカイブsrc.zipなどが含まれています。(参考サイト:JDK および JRE のファイル構造JDK ツールとユーティリティー – 基本的なツール

JDKを標準インストールすると、非公開JREと公開JREがインストールされます。(参考サイト:JDKのインストール

非公開 JRE と公開 JRE の違いとして、「JDK をインストールすると、非公開 J2SE Runtime Environment (JRE) とオプションで公開コピーがインストールされます。JDK に付属しているツールを実行する場合は、非公開 JRE が必要です。非公開 JRE にはレジストリの設定がなく、全体が jre ディレクトリ (通常は C:\Program Files\jdk1.6.0\jre) に格納されます。この場所を認識しているのは JDK のみです。一方、公開 JRE は、他の Java アプリケーションで使用でき、JDK の外部 (通常は C:\Program Files\Java\jre1.6.0) に格納され、Windows レジストリ (HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft 上) に登録され、[アプリケーションの追加と削除] を使って削除できます。また、ブラウザに登録したり、java.exe を Windows のシステムディレクトリにコピー (デフォルトシステムの Java プラットフォームとなるように) したりすることもできます。」という説明があります。(参考サイト:単体で配布されているJREとJDKの中のJREとの違い素朴な疑問[JDK付属JREとJREの違い]Java SE 6 Release Notes

JDK6を標準インストールすると、Java DBもインストールされます。Java DBを使用しないのであれば、「Java DBをインストールしない」を選択してもよく、なくてもコンパイルはできます。(参考サイト:Java 6のJava DBでデータベース

JDK7を標準インストールすると、JavaFXもインストールされます。Java FXを使用しないのであれば、「Java FXをインストールしない」を選択してもよく、なくてもコンパイルはできます。JavaFXはJDK7にとりこまれましたので、以前のように分かれて表示されなくなりました。 (参考サイト:NetBeansとJavaFX Scene Builderで作るJava GUIアプリケーションJavaFX 2.2の新機能JavaFX2.2とJavaFX Scene Builder 1.0Windows OS上へJDK 7をインストールJavaFXをインストールしてみました

2012年09月02日現在、JDKは、Java SE 6 Update 35、またはJava SE 7u7が選択できますが、JDK6のJava SE 6 Update 35 を選択した場合を以下に示します。
2012年10月18日現在、JDKは、Java SE 6 Update 37、またはJava SE 7u9が選択できますが、JDK6のJava SE 6 Update 37 を選択した場合を以下に示します。

32ビットオペレーティングシステムの場合、JDKの32ビット版(jdk-6u37-windows-i586.exe)をインストールします。インストール先のフォルダをデフォルト(インストーラーおまかせ)のままとすると、「C:\Program Files\Java\jdk1.6.0_37」にJDKが、「C:\Program Files\Java\jdk1.6.0_37\jre」に非公開JREが、「C:\Program Files\Java\jre6」に公開JREが、「C:\Windows\System32」に公開JREの「java.exe」、「javaw.exe」、「javaws.exe」のコピーがインストールされます。

64ビットオペレーティングシステムの場合、JDKの32ビット版(jdk-6u37-windows-i586.exe)、JDKの64ビット版(Jdk-6u37-windows-x64.exe)のどちらでもインストールできます。32ビット版は「C:\Program Files (x86)\Java\jdk1.6.0_37」に、64ビット版は「C:\Program Files \Java\jdk1.6.0_37」にインストールされます。

非公開JREはJDKだけが存在を認識でき、 JDK自身の実行に使用されるもので、後述のJREありEclipseの内蔵のJREのようなものです。公開JREは、JDKの外部に格納されるので、JDK以外の他のアプリケーションも存在を認識でき使用可能です。

 

Javaの開発

JDKをインストールすると、Javacコンパイラが使用できるようになり、Javaの開発をすることができるようになります。

“コマンドプロンプト”画面で、まずcdコマンドなどでJavaソースコード(例えばSample.javaとします)のあるフォルダへ移動します。javac.exeでコンパイルしてクラスファイル(Sample.class)を生成でき、java.exeで実行できます。java.exeはJREにもJDKにも存在しますが、javac.exeはJDKにだけ存在します。

後で述べる「パスをとおす」作業を終えるまでは、コマンド名だけで入力してもエラーになるので、コンパイルは「C:\Program Files\Java\jdk1.6.0_37\bin\javac Sample.java」、実行は「C:\Program Files\Java\jdk1.6.0_37\bin\java Sample」とコマンド名にフォルダ名を修飾して入力する必要があります。(コマンド入力時は、拡張子の「.exe」は省略可能です。)

 

パスをとおす

いちいちコマンド名にフォルダ名を修飾して入力するのは不便です。「パスをとおす」作業をすると、これを解消することができます。

「パスをとおす」というのは、環境変数「Path」にコマンドが存在するフォルダのパス(経路)を設定することをいいます。(参考サイト:絶対パスとフルパスの違いがイマイチわかりません。Java のPath ・ClassPath ・JavaHome 違いJava 環境のセットアップJavaのインストール

環境変数は、システムが必要とするさまざまな情報を保管した変数のことで、例えば、「windir」「SystemRoot」変数はWindowsのインストールされている場所を、「temp」「tmp」変数は一時ファイルを作成する場所を示します。「Path」は実行可能ファイル(コマンド)の検索場所を示すもので、新しく設定したいパスがあるときは追記して編集します。誤って、元々の環境変数入力値を消してしまうと、設定してあったはずの他のコマンドのパスを見失ってシステムに影響を及ぼすので注意が必要です。セミコロン(;)は複数の値を設定する場合の区切り文字なので忘れずに加えます。(参考サイト:環境変数を追加する方法環境変数の設定方法ゼロからはじめるバッチプログラミング – 環境変数編

また、環境変数はユーザ環境変数とシステム環境変数があります。ユーザ環境変数はログオンユーザーに対してのみ適用され、システム環境変数はすべてのユーザーに対して適用されます。システムは、通常はユーザー環境変数の設定を先に探して適用し、該当が無ければシステム環境変数の設定を適用します。しかし「Path」の場合は、ユーザー環境変数「Path」の値をシステム環境変数「Path」の値の末尾に追加したものを適用します。

「パスをとおす」作業が不安な場合、”コマンドプロンプト”画面で「path > pathsave.txt」と入力して、システム環境変数「Path」の値を「pathsave.txt」(ファイル名は任意)に保存しておくことができます。「path」とだけ入力すると、現在の「path」の変数値が画面に出力されます。通常、コマンドの実行結果は標準出力と呼ばれるデバイスへ出力され、デフォルトでは標準出力は画面に設定されています。ここではリダイレクトという仕組みを用いて、標準出力内容をファイルに出力するよう指定しています。「path」コマンドの結果を「pathsave.txt」というファイルに書き込むという指示をしたことになります。(参考サイト:リダイレクトリダイレクトとパイプ

ここでは、JDKの「パスをとおす」作業をします。具体的な内容は以下のとおりです

  1. 「Windows」キーを押しながら「Pause」キーを押して”システム”画面を開きます。
  2. 「システム詳細設定」をクリックし、システムのプロパティを開きます。
  3. 詳細設定タブの「環境変数」をクリックします。
  4. システム環境変数「Path」を選択し、「編集」をクリックします。(大文字小文字は無視されるので 「Path」「PATH」「path」はどれも同じです。例えば「PATH」があるのに「Path」を新規作成すると、「PATH」の内容を置き換えてしまうので注意が必要です。)
  5. 「変数値」の最初に「C:\Program Files\Java\jdk1.6.0_37\bin;」を追記し、「C:\Program Files\Java\jdk1.6.0_37\bin;【元々のシステム環境変数入力値】」となるようにします。
  6. 環境変数で「OK」をクリックします。
  7. システムのプロパティで「OK」をクリックします。

Eclipse 3.7.2 Full All in One (JRE あり) Java用を「c:\pleiades」にインストールしていて、JDKをインストールしていない場合は、「C:\Program Files\Java\jdk1.6.0_37\bin;」のかわりに、「C:\pleiades\java\6\bin;」)を環境変数「Path」に設定します。例にあげたものと別のバージョンの場合は、Eclipse メニューの「ウィンドウ」→「設定」→「Java」→「インストール済みのJRE」に設定されているフォルダ配下のbinを「変数値」の最初に追記します。

なお、システム環境変数「JAVA_HOME」に「C:\Program Files\Java\jdk1.6.0_37」と設定し、「Path」の「変数値」を「%JAVA_HOME%\bin;【元々のシステム環境変数入力値】」とする記述の仕方もできます。「%JAVA_HOME%」は、「環境変数JAVA_HOMEに設定された値」を示すので、「C:\Program Files\Java\jdk1.6.0_37\bin;【元々のシステム環境変数入力値】」と記述したのと同じになります。「JAVA_HOME」は、本来はTomcatアプリケーションにJDKの場所を示すための環境変数でした。現在ではTomcatアプリケーション以外でもJAVA_HOMEを参照するアプリケーションもあるようですから、適宜適切な書き方を選択します。(参考サイト:JAVA_HOME

例えば、Android SDK のインストーラ版では途中Javaの存在チェックが入りますが、「JAVA_HOME」にJDKのパスを設定すれば、あえて「%JAVA_HOME%\bin;【元々のシステム環境変数入力値】」と「Path」に記述しなくても、Javaの存在チェックを通過できます。ネットでWindows(64bit)にJDKの64bitをインストールしてAndroid SDK for Windowsのインストーラ版(installer_r20.0.1-windows.exe)を利用すると、「「Path」を設定しているのに「指定されたファイルが見つかりません」とエラーになりインストールできない」という投稿や、「Android SDK Managerを起動しようとしても”コマンドプロンプト”画面が一瞬だけ表示されるだけで失敗する」という投稿を見ますが、「JAVA_HOME」を設定すれば回避できるようです。(参考サイト:Android SDKがWindows7(Home Premium SP1)にインストールできません。

 

「JAVA_HOME」と「Path」の設定確認

「パスをとおす」作業が終わったら”コマンドプロンプト”画面で確認用のコマンドを入力して各種設定値を表示してみます。注意点として、環境変数修正前から開いていた”コマンドプロンプト”画面には修正結果は反映されないので、”コマンドプロンプト”画面を開きなおしてから確認用のコマンドを入力します。(参考サイト:環境変数を変更したら再起動すべきか

  1. 「JAVA_HOME」の設定を見るには、「echo %JAVA_HOME%」とコマンドを入力します。
  2. 「path」の設定を見るには、「echo %path%」あるいは「path」とコマンドを入力します。
  3. 両方の設定を1回で確認したいなら、「set」とコマンドを入力します。様々な情報とあわせて「JAVA_HOME」と「path」の両方の設定が表示されます。

私のパソコンWindowsVista(32Bit)の場合、「Path」の元々の環境変数入力値は、「%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Edy\Edy Library;C:\Program Files\Common Files\Adobe\AGL;C:\Program Files\Common Files\Sony Shared\FeliCaLibrary;c:\Program Files\Common Files\Roxio Shared\DLLShared\;c:\Program Files\Common Files\Roxio Shared\DLLShared\;c:\Program Files\Common Files\Roxio Shared\9.0\DLLShared\;C:\Program Files\Common Files\Ulead Systems\MPEG;C:\Program Files\Justsystems\JSLIB32;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\」が設定されています。「set」とコマンドを入力すると、「SystemRoot=C:\Windows」と表示され、「Path」の部分は「%SystemRoot%」の部分が展開されて「Path=C:\Program Files\Java\jdk1.6.0_37\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;[様々なプリインストールアプリのパス]~」のように確認できました。

別の私のパソコンWindows8(64Bit)の場合、「Path」の元々の環境変数入力値は、「%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\\」が設定されていました。

間違ってシステム環境変数「Path」の値を消してしまったら、値を保存していないと復旧は困難です。(参考サイト:消してしまった環境変数の値を元に戻したいどなたかWindows7 64bit 環境変数 Pathのデフォルトを教えていただけないでしょうか?OSの種類によってバッチ・ファイルの処理を切り替える方法-OS別に調査したデフォルトの環境変数システム環境変数/ユーザー環境変数のデフォルト値一覧

「Path」の消してしまった元々の「変数値」が不明の場合、クリーンインストール直後(プリインストールアプリがない状態)の値を設定するしかないでしょう。WindowsVista(32Bit)なら「%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem」を、Windows7(32Bit)なら「%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\」を設定します。

Windows7で増えている「PowerShell」が何か気になる方は、参考サイトを参照してください。(参考サイト:Windows PowerShell 入門(1)-基本操作編Windows PowerShell 入門

プリインストールアプリ実行時にエラーがでた場合、判別できるのであればコマンドの場所を「Path」に追加します。

 

利用されるJavaのバージョン確認

利用されるJavaのバージョンは、”コマンドプロンプト”画面でJREは「java -version」、JDKは「javac -version」とすることで確認することができます。

両コマンドの「-version」オプションの部分は小文字で入力しないと、「Unrecognized option: -VERSION  Could not create the Java virtual machine.」や「javac: -VERSION は無効なフラグです。」といったエラーになります。このように大文字と小文字を違うものとして認識することをケースセンシティブ(Case sensitive)といいます。

「java -version」とすると「java version “1.6.0_37″」とならずに「`java`は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」、「javac -version」とすると「javac 1.6.0_37」とならずに「`javac`は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」と表示されエラーになる場合は、「Path」の設定がうまくできていません。先に示した「Path」の設定確認の方法で、意図した設定になっているか、「;」や「¥」が抜けていないかを確認します。

なお、Java(JREあるいはJDK)のパスをシステム環境変数「Path」の最後に追記したり、ユーザー環境変数の「Path」に設定したりした場合、利用されるJavaが意図しないものになる場合があります。(先に述べたように、ユーザー環境変数に「Path」を作成して値を設定すると、システム環境変数「Path」の末尾に値を追加したものと同じ様に取り扱われます)

例えば、Java SE 6 Update 37であれば、「C:\Program Files\Java\jdk1.6.0_37\bin;」を「Path」の「変数値」の最初に追記するのではなく、「;C:\Program Files\Java\jdk1.6.0_37\bin」を「Path」の「変数値」の最後に追記した場合です。

公開JREをインストールしていると、「C:\Windows\System32」フォルダにも公開JREの「java.exe」がコピーされています。「C:\Windows\System32」フォルダは「Path」に設定されており、実行可能ファイルの検索は、「Path」の「変数値」の左から右の順におこなわれるので、より左に記述したフォルダに存在するJavaがヒットします。ですから、「java -version」は、「C:\Windows\System32\java.exe -version」と認識され公開JREの「java.exe」のバージョンが表示されます。他にも、以前すでにJavaのパスを設定済みで残っていればそちらの「java.exe」が先にヒットするかもしれません。「C:\Program Files\Java\jdk1.6.0_37\bin;」を最初に追記することで、JDKの「java.exe」がすべての他の「java.exe」より先にヒットし、「C:\Program Files\Java\jdk1.6.0_37\bin\java.exe -version」と認識されます。

「C:\Windows\System32」フォルダの公開JREの「java.exe」のバージョンを知りたい場合は、ファイルを右クリック→プロパティ→詳細タブとすると、製品名とファイルバージョンが表示されるので、あらかじめ確認することができます。(参考サイト:Java Runtime Enviroment(JRE)のバージョンを調べる

公開JREをインストールしている場合、JDKのパスの設定に失敗していても「C:\Windows\System32\java.exe -version」と認識されるので、たまたま設定しようとしたJavaのバージョンが公開JREと一緒の場合、設定に成功しているように錯覚します。javac.exeは公開JREには含まれていないので、「javac -version」とコマンドを入力して「`javac`は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」と表示されることで、失敗に気づくことができます。

Windows Vista以降にある「where」コマンドは実行ファイルの検索ができます。(参考サイト:whereコマンドでファイルを探す) ”コマンドプロンプト”画面で「where java」、「where javac」とコマンドを入力すれば、「Path」に設定されているJavaのパスをチェックすることができます。パスが存在しない場合は「情報: 与えられたパターンのファイルが見つかりませんでした。」と表示されます。両コマンドとも1件もヒットしない場合は、公開JREはインストールされておらず、JDKのパスの設定に失敗していることになります。

また、公開JREには、JDK にはあるサーバモードのJava仮想マシン(JVM or Java VM or Java virtual machine) である Java HotSpot Server Virtual Machine (サーバ VM)  がありません。あるのは、Java HotSpot Client Virtual Machine (クライアント VM) だけです。(参考サイト:チューニングのためのJavaVM講座(前編)Java HotSpot VMにおけるJITコンパイルの概要JVM~メモリ管理~) ですから、”コマンドプロンプト”画面で「java -server」とサーバ VM の起動オプション「-server」を付与したコマンドを入力して「Error: missing ‘server’ JVM at ‘C:\Program Files\Java\jre6\bin\server\jvm.dll’. Please install or use the JRE or JDK that contains these missing components.」とでるなら、JDKを参照していないことになります。

JVM のパフォーマンスについての参考サイトを記します。(参考サイト:Java VMパフォーマンスチューニングガイドJVMのチューニングヒープメモリを使い果たさないガベージコレクタのエルゴノミクスVMのヒープ最大サイズを1GBより大きくする方法JVMヒープサイズのデフォルト値は?

古いバージョンのJavaをダウンロードしたい場合は、Javaアーカイブのダウンロード・ページを利用します。アカウントがない場合は「サインアップ」が必要になります。(参考サイト:Javaの古いバージョンおよび関連ドキュメントはどこで入手できますか。Java実行環境をインストールするにはjava7からjava6に変えたいのですが、やり方がわかりません。 直サイト教えて下さい…Javaランタイムの入手方法

あるいは、Pleiades All in One の Ultimate 版 または Java 版 の Full Edition(JREあり) にもJavaが同梱されているので、以前のバージョンを展開後に「jre」フォルダや「java」フォルダから古いバージョンのJavaを取り出すという方法でも良いかもしれません。

 

Eclipse

EclipseはJavaアプリケーションです。起動にJava(JREあるいはJDK)のインストールを必要とするかはパッケージにより異なります。

64ビットオペレーティングシステムの場合、JDK(JRE)32ビット版+Eclipse32ビット版またはJDK(JRE)64ビット版+Eclipse64ビット版の組み合わせで動作します。JDK(JRE)32ビット版+Eclipse64ビット版やJDK(JRE)64ビット版+Eclipse32ビット版の組み合わせでは動作しません。「Failed to load the JNI shared library」とエラーになります。(参考サイト:32 ビット アプリケーションの実行

Javaを認識できない場合は、 「A Java Runtime Environment(JRE) or Java DevelopmentKit (JDK) must be available in order to run Eclipse. No Java virtual machine was found after following locations:  %ECLIPSE_HOME%\jre\bin\javaw.exe javaw.exe in your current PATH」(Eclipse を実行するためには、Java実行環境(JRE)かJava開発キット(JDK)が必要です。 次の場所にはJava仮想マシンはみつかりませんでした。 Eclipseインストールフォルダのjre\bin\javaw.exe あなたの現在の環境変数「PATH」で設定したフォルダのjavaw.exe)とエラーになります。

「eclipse.ini」ファイルでEclipse 起動に利用するJavaを明示したり起動ショートカットにオプション指定したりすると、Pathで設定したJavaよりも優先されます。(参考サイト:Eclipse 起動時に使用する Java VM を指定するEclipseがjre(javaw.exe)のバージョンが違って動かない

「eclipse.ini」ファイルはメモ帳で開くと改行されずに表示されます。編集する際は、ワードパッドを利用したり、改行コードを反映するエディタを利用したり、改行コードを書き換えてからメモ帳を利用したりします。(参考サイト:eclipse.iniの改行コードを変更するには?

Eclipseメニューの「ヘルプ」→「Eclipseプラットフォームについて」→「インストール詳細」→「構成」タブをクリックして表示される情報の、「-vm」の次の行を見ると起動に使用されたJREを確認することができます。(参考サイト:Eclipse 起動時に使用されている Java VM を確認してみよう

使用されたJREは、java.lang.SystemクラスのgetPropertyメソッドを使って確認することもできます。(参考サイト:Gradleに正しいJAVA_HOMEのパスを教えるJavaのシステム値を取得する(System.getProperty)WindowsとLinuxの両方で動作するコードを書くJava備忘録 -javaでWindowsログインIDの取得-

Eclipse(JDTプラグインをインストールしているJava版やJava EE版)は内蔵の独自コンパイラECJ(Eclipse Compiler for Java)を使用してJavaソースコードをコンパイルします。(参考サイト:ECJ – Eclipse Compiler for Javaなぜ Eclipse は JRE を使っているのにコンパイルできるの?

JDKのJavacコンパイラ(javac.exe)は利用しないので、実はJDKをインストールしていなくても支障なくコンパイルできます。JDKのどのバージョンの仕様に沿ってコンパイルするかは、Eclipse メニューの「ウィンドウ」→「設定」→「Java」→「コンパイラ準拠レベル」で設定します。バージョンにより、クラスやメソッドが追加されたり、非推奨化されたりしています。(参考サイト:Java新機能(Javaの変更点)

「コンパイラ準拠レベル」で設定したバージョンで採用されていない文法は、コンパイルエラーになりますが、メソッドの有無の判定は「インストール済みのJRE」で設定したランタイムクラスライブラリ(rt.jar)のバージョンに依存します。(参考サイト:eclipseの設定のJREとコンパイラの違い

Javaのソースコードをメモ帳で編集しUTF-8で保存すると、自動でファイルの頭にUnicodeサインのBOM(Byte Order Mark)がつきます。(参考サイト:UTF-8 と UTF-8N の違いは何か?

BOMがついたものはECJではコンパイルできますが、Javacコンパイラでは「 \65279 は不正な文字です。」とエラーになります。それ以外でも、ごく一部の書き方では、ECJでエラーがなくてもJavacコンパイラではエラーになることがある様です。(参考サイト:ECJ (Eclipse Compiler for Java) は面倒見が良すぎ…Eclipse で作成したソースを javac でコンパイルするとエラー

本家Eclipseや、JREなし版の日本語EclipseのPleiades All in Oneの起動には、「java -version」で確認したJREが利用されます。

EclipseでJava開発するなら公開JREだけですべて済みそうですが、JDKをインストールして利用したほうがいいでしょう。それは、Eclipse メニューの「ウィンドウ」→「設定」→「Java」→「インストール済みのJRE」の設定がJREになっていると、JREはクラスライブラリのソースをもたないため、デバッグ時にJavaのAPIにステップインした場合に「ソースが見つかりませんでした。」と表示されて不便だからです。JREではなくJDKを設定しておくとクラスライブラリのソースコードアーカイブを含んでいるので、JavaのAPIにステップインしてもソースが表示されスタックトレースできます。

また、TomcatアプリケーションでJSPを利用する場合も、JDKにある「tools.jar」ファイルが必要で(「tools.jar」ファイルにはJavacコンパイラが含まれています)、JREでは「org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: 」 「原因  Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK 」とエラーになります。Linuxの場合は、別の要因でもこのエラーになることがあるようです。(参考サイト:いまさら聞けないTomcat〜JSPサーバ構築のキソプログラムからコンパイル – Compiler API その1

なお、公開JREはWebブラウザのJavaプラグインとして利用されるので、セキュリティ上から最新版がでればすぐにアップデートしたほうが良い性質のものです。(参考サイト:「Java アップデートを入手可能」というメッセージが画面右下から頻繁に表示されるJRE7u10 からコントロールパネルのセキュリティタブがちょっと変わった

必要な時以外は無効化することもできます。(参考サイト:JAVAを主要3ブラウザ「Internet Explorer、Chrome、Firefox」で無効化する方法

システムの安全性を高めるには、インストールされているJREのバージョンを把握し、脆弱性の懸念のある不要な古いJavaはアンインストールするのがよいでしょう。(参考サイト:Oracle、Java SE向けにクリティカルパッチアップデートを公開米オラクル、Java 7の深刻な脆弱性を塞ぐアップデートを緊急リリース古いバージョンのJava Runtime Environmentはアンインストールしてもよい

公開JREを「インストール済みのJRE」に設定するとアップデートのたびにライブラリがかわることになります。特に企業で複数の人間で開発している場合は、チームメンバー全員の開発環境が同じであることが求められるので、特定のJDK(JRE)のバージョンで「インストール済みのJRE」を固定して開発することになるでしょう。(参考サイト:チーム開発に向けたビルド環境の構築Java開発環境Eclipse(エクリプス)のお話

もし、Javaの自動アップデートを無効にしたい場合は、公開JREの「javacpl.exe」(Java6であればC:\Program Files\Java\jre6\bin\javacpl.exe)を右クリック→「管理者として実行」をクリックして「Javaコントロール・パネル」画面を表示し、更新タブの「更新を自動的にチェック」をはずしてアップデートを無効にするよう設定します。(参考サイト:JavaのアップデートチェックがうざいJava Updateとは

ただし、Javaの自動アップデートを無効にする前に、Java(JRE)が原因でウイルス強制感染! Java Update無効停止は危険を一読することをお勧めします。

本家Eclipseの場合、JDKにパスをとおして新規のworkspaceで起動すれば、「インストール済みのJRE」にはJDKが設定されます。既存のworkspaceで起動すると、「インストール済みのJRE」の設定は、その既存のworkspaceが保持しているものとなります。

「インストール済みのJRE」にJDK6のJava SE 6 Update 37を設定する方法を説明します。Eclipseメニューの「ウィンドウ」→「設定」→「Java」→「インストール済みのJRE」の設定で「追加」をクリック→「標準VM」を選択し「次へ」をクリック→「ディレクトリー」をクリック→フォルダの参照画面から、「コンピュータ」≫「ローカルディスク」≫「Program Files」≫「Java」≫「jdk1.6.0_37」とフォルダを選択し、「OK」をクリック→JREシステムライブラリー欄にjarファイルが列挙されるを確認して「完了」をクリックして追加し、追加しただけでは設定されないので、チェックを入れます。(参考サイト:【eclipce】JREからJDKへ変更する方法(jspを使うためには必須)

 

その他

javacのバージョンよりもjavaのバージョンが古い場合、例えばJava7(1.7)でコンパイルしたものをJava6(1.6)で実行しようとすると
「Exception in thread “main” java.lang.UnsupportedClassVersionError: sample : Unsupported major.minor version 51.0」のようにエラーになります。(参考サイト:eclipseで作成したサーブレットをサーバー上で動かしたいがエラー。ContOSでJava SE 1.7をインストールしたけどJREバージョン違いで実行できない!GAE に配置した Servlet が動かなくてしばらく困っていたけどようやく解決Java 7 Questions & Answers

Eclipseで、コンパイルと実行のバージョンをJava6に合わせようとして「インストール済みのJRE」を「1.7」jから「1.6」へ変えただけでは不十分です。クリーンビルドを実行して、コンパイルを意図的にし直す必要があります。(参考サイト:どうすれば、以前のJavaのバージョンに私のEclipseプロジェクトに変換するのですか?

Java(major.minor version)の組み合わせは
Java1.1(45.3)、Java1.2(46.0)、Java1.3(47.0)、Java1.4(48.0)、Java1.5(49.0)、Java1.6(50.0)、Java1.7(51.0)
となっています。(参考サイト:Javaアプリケーション メモ

javacとjavaのバージョンが合わせられない場合は、コンパイル時に-targetを指定してクロスコンパイルする方法もあります。(参考サイト:Javaのバージョンあれこれ

Javaの脆弱性が見つかり、対策の一つとして、一時的にJavaアプレット実行機能を無効化したい場合の参考サイトを記します。(参考サイト:セキュリティ攻撃阻止のためにWebブラウザでJavaを無効化する脆弱性が見つかったときなどに:各ブラウザのJavaを無効化する方法(Chrome / Firefox / Internet Explorer / Opera)

Java Platform, Standard Edition (Java SE) および JDK のドキュメントの一覧はこちらにあります → Java SE API & ドキュメント

JAR (Java ARchive)ファイルを.exeに変換する方法の参考サイトを記します。(参考サイト:.jarファイルを.exeに変換する方法について。内部でJavaVMを立ち上げてjarファイルを実行するexeを作る【 JAVA言語のススメ 】

Androidエラーの傾向と対策

Q.EclipseにAndroid開発環境構築のためADT プラグインをインストールしようとしたら「要求を完了できません。詳細を参照してください。依存関係違反。次の要件を満たすソリューションがみつかりません。」とメッセージが表示される。
A.プラグインを利用するにあたり、他のプラグインのバージョンと整合がとれていない、あるいは必要なプラグインがインストールされていないと依存関係エラーになります。Eclipseのバージョンが、Androidアプリ開発システム要件を満たさない古いものであることが考えられます。バージョン3.6.2以上のEclipseで構築してみます。

Q.SDKコンポーネントを追加しようとしたら「Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list-1.xml, reason: Connection to https://dl-ssl.google.com refused 」「Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-5.xml, reason: Connection to https://dl-ssl.google.com refused 」とメッセージが表示される。
A.プロキシを経由している環境ではないですか?「Android SDK Manager」でプロキシ設定を行う必要があります。(参考サイト:Android SDKとAVDのアップデートについて

Q.新規Androidプロジェクトの作成で「An SDK Target must be specified.」(SDKターゲットを指定する必要があります。)とメッセージが表示される。
A.SDKロケーションが設定されていないことが考えられます。Eclipseメニューの「ウィンドウ」→「設定」→左ペイン「Android」をクリックしてSDKロケーションにAndroid SDKの場所を設定します。

Q.新規Androidプロジェクトの作成で「java.io.FileNotFoundException」とメッセージが表示される。
A.Androidエミュレータのパスに問題があると思われます。ビルドしようとしたらライブラリがなかったという意味なので、Androidプロジェクトを右クリック→「ビルド・パス」→「ビルド・パスの構成」→左ペイン「Android」→「Project Build Target」で適切なエミュレータのバージョンをチェックし、ライブラリを選択します。

Q.新規Androidプロジェクトの作成で「%android-sdk%/tools/ant/build.xml:479: SDK does not have any Build Tools installed.」とメッセージが表示される。
A.Android SDK Manager を起動し、Android SDK Build-tools をインストールします。(参考サイト:Android SDK 22 では、Build Toolsが必要になったようです。Eclipse ADT 22 のバージョンアップでは Android SDK Manager のアップデートは 2 回する。いまどきのAndroid開発に通しておくといいPATH

Q.「ビルド・パスのエラーが解決されるまで、プロジェクトをビルドできません」または「no classfiles specified」とメッセージが表示される。
A.Androidプロジェクトを右クリック→「ビルド・パス」→「ビルド・パスの構成」→左ペイン「Java のビルド・パス」→「順序およびエクスポートタブ」で「Android X.X」などの未チェック項目を適宜チェックし、「OK」をクリックします。その後、Eclipseメニューの「プロジェクト」→「クリーン」を実行します。チェックを入れてもダメな場合は順序を上にしてみます。いったん正常に動作すれば、以後「順序およびエクスポート」のチェックをはずしても正常に動作するようです。ソースフォルダ(src)は常にエクスポート項目です。(選択解除できません)

Q.ビルドすると「Android requires compiler compliance level 5.0 or 6.0. Found ‘1.7’ instead. Please use Android Tools > Fix Project Properties.」とメッセージが表示される。
A.Androidの開発要件はJDK6(1.6)で、JDK7(1.7)は要件に沿っていません。Androidプロジェクトを右クリック→Javaコンパイラー→Javaコンパイラーの準拠レベルが「1.7」になっているはずなので「1.6」に変更し、「OK」をクリックします。

Q.プログラムが間違っていないのに 「R.layout.~」リソースの参照でエラーが起こる。
A.Androidプロジェクトを右クリック→Javaコンパイラー→Javaコンパイラーの準拠レベルが「1.6」になっているのところを「1.5」や「1.7」に変更し、「OK」をクリックします。その後、Javaコンパイラーの準拠レベルを「1.6」に戻して「OK」をクリックし、再ビルドします。

Q.「java.lang.NoClassDefFoundError」、「VFY: unable to find class referenced in signature …」エラーが起こる。
A.Android Tools Project SiteのDealing with dependencies in Android projectsにあるように、ADT 17.0.0 からライブラリを配置するフォルダが lib から libs に変更されています。プロジェクトディレクトリ内の「lib」フォルダ配下のJarをいったん退避し、フォルダ名を「libs」に変更してビルドしなおします。(参考サイト:外部jarを使ったandroidプロジェクトが起動しなくなった解決法ADT r15-> r20 にアップデートしたら実行時にエラーHow to fix the “NoClassDefFoundError” with ADT 17Androidで外部JarがAPKファイルに取り込まれなくなった時の対処法Androidアプリ開発では、外部jarファイルはlibsフォルダ内に置くこと) ADTの変更により、「libs」フォルダに置いたjarは「ビルド・パス」に設定しなくても自動で参照されます。Eclipseのパッケージエクスプローラで「Android Dependencies」に含まれているかどうかで確認できます。上記の「ビルド・パスの構成」→左ペイン「Java のビルド・パス」→「順序およびエクスポートタブ」の方法で対象jarをエクスポートして外部から可視化しても解消できます。ADT r22からはビルド・パスの「Android Private Library」のチェックを確認します。(参考サイト:Android SDK r17にアップデートしたらVerifyErrorAndroid SDKのアップデート時の注意(?)libsの中のライブラリがあるのに使えないADTでlibsフォルダ配下においたファイルが認識されないアクティビティの ClassNotFoundException の解決方法AndroidSDKをR22にしたら、アプリがエミュレータで起動しなくなった時にありがちな原因Android SDK r22 の注意点libraryのパスってどうなってるの?ADT22でのMultiple dex files defineの解決方法開発でつまづいた事!! jarファイルの参照!!

Q.「java.lang.VerifyError」とエラーメッセージが出る。
A.使えないAPIを利用しようとしています。(参考サイト:Android1.6 で発生する java.lang.VerifyError の対処メモ

Q.新規Androidプロジェクトの作成で、「The tools need to be updated via the SDK manager.  Your tools installation appears to be out of date (or not yet installed). This wizard depends on templates distributed with the Android SDK Tools.」とメッセージが表示される。
A.Android SDK managerを起動し、「Android SDK Tools」、「Android SDK Platform-tools」をチェックし、アップデート(またはインストール)します。

Q.新規Androidプロジェクトの作成で、「Install Dependencies    Unsupported templete dependency : Upgrade your Android Eclipse plugin    This templete depends on the Android Support libraly, which is either not installed, or the template depends on a more recent version than the one you have installed.」とメッセージが表示される。
A.「%ANDROID-SDK-HOME%/tools/templates/activities/BlankActivity/template.xml」ファイルを開き「<dependency name=”appcompat” version=”v7″ />」の記述を
除外して対応します。Android SDK r22.2のバグのようです。(参考サイト:AndroidSDKをrev22.2へアップデートしたらAndroid新規プロジェクトが作れなくなった

Q.新規Androidプロジェクトの作成で、あるはずのプラットフォームがターゲットのリストに表示されない。
A.Android SDK Tools で新規にPlatformを追加しただけではリストに反映されません。Eclipseを再起動する必要があります。Eclipseメニューの「ファイル」→「再開」をクリックします。

Q.Android 仮想デバイス・マネージャーの新規Android仮想デバイス作成で、あるはずのプラットフォームがターゲットのリストに表示されない。
A.Android SDK Tools で新規にPlatformを追加しただけではリストに反映されません。Eclipseを再起動する必要があります。Eclipseメニューの「ファイル」→「再開」をクリックします。

Q.Eclipseメニューの「ウィンドウ」→「設定」→左ペイン「Android」をクリックすると「com.android.sdkuilib.internal.widgets.SdkTargetSelector.access$000 (Lcom/android/sdkuilib/internal/widgets/SdkTargetSelector;)Z」とメッセージが表示される。
A.直前にADT Pluginを更新しているのにEclipse をクリーン起動しなかった場合に起こります。Eclipse (eclipse.exe)を「%ECLIPSE_HOME%/eclipse -clean」のように、「-clean」オプションを指定して起動します。Eclipseのショートカットを作成してオプション指定するのが簡単です。(参考サイト:Android 4.0 (ADT)での罠Eclipseのキャッシュを削除する。(クリーン起動)『Pleiades でエラーが発生しました。』の対処法ex.1 ECLIPSEの日本語化eclipse.exeの-cleanオプションをショートカットに設定するクリーン起動MacのEclipseをclean起動するコマンドEclipseが起動しなくなったときにやってみること(cleanオプション)Eclipseエラー・・・

Q.レイアウト(*.xml)を編集しようとしたら「エラーが発生しました。詳細については、エラー・ログを参照してください。com/android/ide/eclipse/adt/~」とメッセージが表示され開けない。
A.直前にADT Pluginを更新しているのにEclipse をクリーン起動しなかった場合に起こります。Eclipse (eclipse.exe)を「%ECLIPSE_HOME%/eclipse -clean」のように、「-clean」オプションを指定して起動します。Eclipseのショートカットを作成してオプション指定するのが簡単です。(参考サイト:main.xmlが開けないエラーADT-Pluginインストールで長ったらしいエラーが出た。ADT11.0導入によるレイアウトエディタエラー発生時の対処com/android/ide/eclipse/adt/internal/resources/configurations/FolderConfigurationのエラー

Q.Graphical Layoutが表示されない。「java.lang.NullPointerException」「Exception details are logged in Window > Show View > Error Log」とメッセージが表示される。
A.Eclipse をクリーン起動し、「Graphical Layout」右上の「ターゲットビルド」を、プロジェクトのSDKバージョンにします。(参考サイト:Android 「main.xmlが開けない」「Graphical Layoutが表示されない」取りまとめeclipseのXMLデザイナーが開かないレイアウトが表示されない(java.lang.NullPointerException)

カスタムビューを使用している場合など、 isInEditMode() を記述して処理を抑止すると解消する場合があります。(参考サイト:EclipseのLayout Editor でエラーが吐かれる。Android のレイアウト XML を Eclipse の Graphic Layout で表示できないカスタムView作成時のメモAndroidのつまずき-SurfaceViewが重ならない?!

Q.LogCatを起動しようとしたら「ビューを作成できませんでした: com.android.ddmuilib.logcat.LogCatPanel$13.(Lcom/android/ddmuilib/logcat/Log CatPanel;)V」とメッセージが表示される。
A.直前にADT Pluginを更新しているのにEclipse をクリーン起動しなかった場合に起こります。Eclipse (eclipse.exe)を「%ECLIPSE_HOME%/eclipse -clean」のように、「-clean」オプションを指定して起動します。Eclipseのショートカットを作成してオプション指定するのが簡単です。

Q.「INSTALL_FAILED_MISSING_SHARED_LIBRARY」エラーが起こる。
A.Androidプロジェクトのビルド・ターゲットが「Google APIs」なのに、AVDのターゲットが一般の「Android X.X.X”となっているはずなので、AVDのターゲットを「Google APIs」にします。

Q.Androidプロジェクトを実行したら「Your project contains error(s),please fix them begore running your application」とメッセージが表示される。
A.Eclipseメニューの「プロジェクト」→「クリーン」を実行してみます。これで解決しない場合は、ソースの一部を編集(わざと空白を挿入して削除するなど)してから「クリーン」を実行してみます。

Q.Android SDKを更新しようとしたら「Warning ! A folder failed to be moved. On Windows this typically means that a > program is using that folder > (for example Windows Explorer or your anti-virus software.)」とメッセージが表示される。
A.Eclipseやエクスプローラーなどの他のプログラムが「android-sdk-windows」フォルダを掴んでいます。掴んでいるプログラムを閉じるようにします。不明なら、Windowsを再起動してみます。(参考サイト:Androidアプリ開発において、エラーの対処方法2Android2.3.3環境構築(installer_r10-windows)Android SDKのAndroid SDK Toolsアップデート時に”A folder failed to be moved.” エラーが発生する

Q.Android SDKを更新したら「ERROR: Unknown command ‘crunch’」エラーが起こる。
A. Android SDK Manager を確認します。更新が必要な部分に「Update available」 の表示とともにチェックが入っているものを更新します。(参考サイト:ERROR: Unknown command ‘crunch’ 出ました~♪

Q.Android SDK r22に更新したらおかしくなった。起動しなくなった。
A. Android SDK r22以降は、「Android SDK Build-tools」が増えています。クリーン起動を試してみます。(参考サイト:Eclipse ADT 22 のバージョンアップでは Android SDK Manager のアップデートは 2 回する。

Q.AVDを作成しようとしたら、CPU/ABIの欄が「No systemimages installed for this target」と表示されている。
A.SDK Managerでsystem imageをインストールする必要があります。なお、インストールして一度Eclipseを再起動しないと表示は変化しません。(参考サイト:AVDが作成できない

Q.AVDを起動しようとしたら「Failed to install XXX.apk on device ‘emulator-5554′: timeout Launch canceled!」とメッセージが表示される。
A.マシンのスペックが低いと起動までに時間がかかるため、タイムアウトの時間を長くする必要があります。Eclipseメニューの「ウィンドウ」→「設定」→左ペイン「Android」→「DDMS」をクリックし、「ADB Connection timeout(ms)」の値を大きくします。(参考サイト:timeoutエラーが発生する

Q.AVDを起動しようとしたら「PANIC: Could not open AVD config file」とメッセージが表示される。
A.AVD作成時のWindoiwsログインユーザー名が日本語、SDKのPathに半角スペースある、あるいはユーザーフォルダの位置をCドライブ以外に移動していると起こります。

環境変数「ANDROID_SDK_HOME」を利用してAVDのパスを設定します。(参考サイト:AVDの保存場所を設定ANDROID_SDK_HOMEを設定する。Android開発環境構築(その 7):Eclipse AVDの作成とエミュレーターの起動PANIC: Could not open AVD config fileeclipseでエミュレーター起動時に「PANIC: Could not open:アンドロイドのエミュレーターを作成する

あるいはWindows Vista以降なら、コマンドプロンプトからmklinkコマンドでシンボリック リンクを作成しても対応できます。XPでもリソースキットをインストールすれば対応できます。(参考サイト:Android:AVDが起動しない(PANIC:Could not open…)エミュレータが起動しない(PANIC: Could not open: C:Users…)Androidのエミュレータが起動しない

Q.問題ビューに「Error generating final archive: Debug certificate expired on YY/MM/DD hh:mm」とメッセージが表示される。
A.debug.keystore(デバッグ用証明書)の有効期限は標準で365日に設定されています。Androidインストールから1年たって有効期限切れになるとこのメッセージが表示され、今まで普通にコンパイルできていたものもエラーになります。Eclipseメニューの「ウィンドウ」→「設定」→左ペイン「Android」→「Build」をクリックして 「デフォルトのデバッグキーストア」の場所を確認します。デバッグ用証明書は、ここに存在するものが使われ、存在しなければ、自動的にSDKが発行してくれます。確認したパスの「debug.keystore」を削除してからEclipseを再起動して、Eclipseメニューの「プロジェクト」→「クリーン」を実行します。なお、本番用の証明書は紛失しないよう注意しないとアップデートできません。(参考サイト:apk は前のバージョンと同じ証明書で署名する必要があります。

Q.問題ビューに「[アクセシビリティ] Missing contentDescription attribute on  image」と警告メッセージが表示される。
A.プロジェクト・ビルドターゲットが Android 4.0 以上で、xml ファイルの ImageView に android:contentDescription が無いとこの警告が出ます。(参考サイト:Android 4.0でアクセシビリティを向上させるImageViewで出てた警告[Android] [アクセシビリティ] Missing contentDescription attribute on image

Q.プロジェクトをインポートしたら「Project has no default.properties file! Edit the project properties to set one.」とメッセージが表示される。
A.
「default.properties」ファイルが欠落しています。(参考サイト:サンプルで画面遷移の仕方を確認【Android】インポート時のエラー対応メモ【eclipse】

Q.プロジェクトをインポートしたら「Unable to resolve target ‘android-x’」(ターゲット’アンドロイド-X’を解決できません)とメッセージが表示される。
A.プロジェクトが指定しているAndroidプラットフォームがインストールされていません。Android SDK マネージャー を起動し、メッセージに表示されたプラットフォームをインストールするか、「project.properties」ファイル(r14未満の古いandroid SDK のバージョンでは「default.properties」)のtargetを変更します。(参考サイト:アプリケーションの作成方法プロジェクトのインポートに於けるエラーについてエラー対処方法5Unable to resolve target ‘android-4′Eclipse で Android sl4a のプログラムを作成してみるADT 14.0.0 (for Android4.0) の変更点 [ADT Plugin for Eclipse 翻訳]

Q.@Overrideアノテーションで「スーパークラスのメソッドをオーバーライドする必要があります」メッセージが表示される。
A.Eclipseの「コンパイラー準拠レベル」の設定がJava5(1.5)になっていて、「onClick(View)」のようなインターフェースの実装に記述すると発生します。

@Overrideアノテーションは、スーパークラス(親クラス、基底クラス)のメソッドをサブクラス(子クラス、派生クラス)でオーバーライド(スーパークラスで定義されているメソッドを上書き)していることを明示するものです。宣言することで、メソッド名、戻り値の型、引数の数と型がスーパークラスと同じでないとエラーになるので、記述間違いを防ぐことができます。けれども、Java5ではインターフェースの実装で@Overrideアノテーションを記述できません。 インターフェースの実装でも記述できるようになったのはJava6からです。

Pleiades all in One 3.7.2 (Eclipse3.7) 以前は、既定の「コンパイラー準拠レベル」の設定がJava5(1.5)になっているので、Java6(1.6)に設定しないと発生します。

Eclipseメニューの「ウィンドウ(Window)」→「設定(Preferences)」→左側ペインで「Java」→「コンパイラー(Compiler) 」を選択します。右側ペインで、「コンパイラー準拠レベル(Compiler compliance Level)」を選択します。「1.6」を設定し、設定画面の「OK」をクリックします。コンパイラー設定が変更ダイアログが出て、フル・ビルドを行うか問われるので「はい」をクリックします。

解決しない場合は、パッケージエクスプローラでプロジェクトを右クリック→「プロパティ」→左側ペインで「Javaコンパイラー 」を選択します。「プロジェクト固有の設定を可能にする」にチェックが入っていて、「コンパイラー準拠レベル」の設定がJava5(1.5)になっていると思いますので、Java6(1.6)に設定します。(参考サイト:@Override アノテーション@Overrideのエラーを解決してみた@Overrideをつけると「スーパークラスのメソッドをオーバーライドする必要があります」エラーになる問題解決Eclipseでアノテーション@Overrideを取り除けというエラーが出た

Q.Android SDK マネージャーでコンポーネントをアップデートしようとしたら「Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-7.xml, reason: IO Unknown Host dl-ssl.google.com.~」とメッセージが表示される。
A.プロキシ設定が原因の可能性があります。「Settings」をクリックし設定します。(参考サイト:Android SDK Managerでfetchに失敗するAndroid SDK の各バージョンを手動でインストールする

Q.アプリを更新しようとしたら「パッケージファイルが無効です」とメッセージが表示される。
A.端末の保存容量がいっぱいになっていると、失敗します。アプリを一度アンインストールするか、「Google Playストア」の「キャッシュを消去」や「データの消去」をしてからやり直すようにします。あるいは、WiFi接続で更新している場合は、データ通信(3GもしくはLTE)に切り替えてみます。(参考サイト:「パッケージファイルが無効です」メッセージでアプリのインストール、更新ができない場合の対処法エラーが出てインストールできない

Q.実行したら、端末画面に「[!]エラー アプリ名(com.example.sample)が予期せず停止しました。やり直してください。」と表示される。LogCatに「Uncaught handler: thread main exiting due to uncaught exception」  「android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.sample/ClassName}; have you declared this activity in your AndroidManifest.xml?」とメッセージが表示される。
A.全てのActivityはマニフェストファイル「AndroidManifest.xml」に<activity>タグで宣言されている必要があります。パッケージ名とクラス名をあわせた完全修飾クラス名で記述しますが、<manifest>タグで指定したパッケージに属していれば、パッケージ名を省略し「.」(ピリオド)+クラス名での記述ができます。宣言されていない画面(Activity)を呼び出そうとするとこのエラーになります。すなわち、intent命令で呼び出そうとしたActivity名を書き漏らしているか、書き間違っているのが原因です。例えばパッケージ名やファイル名を修正して名前を変えたのに、「AndroidManifest.xml」中の名前が以前のままの場合に起こります。(参考サイト:アクティビティの追加EclipseでのActivityの追加方法開発初心者がよくやる失敗【コーディング編】(1)AndroidManifest と画面遷移android:nameのパスは絶対か相対か?AndroidプロジェクトでEclipseを使ってソース構成を変えずにパッケージ名のみサクッと変更するアプリのパッケージ名を変更する

Q.実行したら、端末画面に「[!]エラー アプリ名(com.example.sample)が予期せず停止しました。やり直してください。」と表示される。LogCatに「Uncaught handler: thread main exiting due to uncaught exception」  「java.lang.RuntimeException: Unable to instance activity ComponentInfo(com.example.sample/ClassName}: java.lang.ClassNotFoundException: com.example.sample.ClassName in loader dalvik.system.PathClassLoader@xxxxxxxx」とメッセージが表示される。
A.intent命令で呼び出そうとしたActivityが存在しません。呼び出そうとしたActivityの「xxx.java」ファイルの名前を書き違えていないかチェックします。

Q.実行したら、端末画面に「[!]エラー アプリ名(com.example.sample)が予期せず停止しました。やり直してください。」と表示される。LogCatに「java.lang.RuntimeException: Unable to start activity ComponentInfo(com.example.sample/com.example.sample.MainActivity): android.util.AndroidRuntimeException: requestFeature() must be called before adding content」とメッセージが表示される。
A.タイトルを非表示にする 「requestWindowFeature(Window.FEATURE_NO_TITLE)」 の記述をMainActivityにしているはずです。「setContentView(ビュー名)」 の記述より先に記述します。(参考サイト:アクティビティのタイトルを表示しない方法

Q.実行したら、端末画面に「[!]エラー アプリ名(com.example.sample)が予期せず停止しました。やり直してください。」と表示される。LogCatに「Uncaught handler: thread main exiting due to uncaught exception」  「java.lang.RuntimeException: Unable to start activity ComponentInfo(com.example.sample/ClassName}: java.lang.NullPointerException」とメッセージが表示される。
A.intent命令で呼び出そうとしたActivityのonCreate()メソッド内にエラーがあります。参照しようとした変数の値がnull(値が定まっていない状態)のものがあります。(参考サイト:findViewByIdはsetContentViewの後でAlertDialog#findViewByIdはshow以降じゃないと使えないAndroid SDK の動かないコード(中級編) ListView内の要素にアクセスしようとするとNullPointerExceptionで落ちるエラーコードに間違いがないはずなのにNullPointerExceptionが返ってくる

Q.実行したら「No Launcher activity found!」「The launch will only sync the application package on the device!」とメッセージが表示される。
A.
マニフェストファイル「AndroidManifest.xml」内の<activity>タグに、
<intent-filter>
<action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
を追記します。(参考サイト:Androidアプリケーション実行時にNo Launcher activity found!が出て実行できないときにやったことAndroidアプリで最初に呼び出されるクラスを用意するまでのエラーとその対策メモ

Q.実行したら「Re-Installation Failed Due To Different Application Signatures.」「Please execute ‘adb uninstall パッケージ名.アプリ名’  in a shell.」とメッセージが表示される。
A.
一旦アプリを削除してからインストールします。以前とファイルの署名が異なるapkファイルをインストールしようとするとこのメッセージが出ます。例えば、アプリをチーム(複数の人間)で開発していて、実機やエミュレータへ上書きインストールしようとしたときに、開発者ごとに異なるデバッグ用キーストアを使用していると頻繁に起こり得ます。インストール済みのアプリを削除しないとインストールできません。解決策として、Eclipseメニューの「ウィンドウ」→「設定」→左ペイン「Android」→「ビルド」とした右ペインの「カスタム・デバッグ・キーストア」欄に開発者共通のキーストアを用いると煩わしくありません。(参考サイト:Launch canceled!Android MapViewで使用するapiKeyの共有

Q.実行したら「Unfortunately, (app) has stopped.」とメッセージが表示される。
A.「AndroidManifest.xml」に必要な設定が足りていません。(参考サイト:Android 「Unfortunately, (app) has stopped.」 エラーの対応記録

Q.実行したら「Unfortunately, Launcher has stopped.」とメッセージが表示される。
A.「.avd/config.ini」を修正してみます。(参考サイト:Nexus7用エミュレータが起動しない、「Unfortunately, Launcher has stopped.」の直し方

Q.実行したら「unfortunately system ui has stopped」とメッセージが表示される。
A.「GPU Support」をOFFにしてみます。(参考サイト:SDK 18 リリース Emulator GPU サポート

Q.実行したら「Failed to allocate memory: 8」とメッセージが表示される。
A.エミュレータ作成時のMemory Options の RAMサイズを768MiB(メビバイト)以下にします。Windowsでは、Android AVDに設定できるメモリサイズは1GiB(ギビバイト)の上限があります。例えば「nexus7」エミュレータの設定では、デフォルトが1024MiBとなっており、小さくしないとエラーになります。(参考サイト:Android開発でつまずいたこと色々Android/SDKインストール(r21)Android AVDを作成するMiB(メビバイト)、GiB(ギビバイト)と言う単位について

Q.実行したら「The application demetter(process com.android) has stopped unexpectedly. Please try again.」「Unable to find explicit activity class {画面名}; have you declared this activity in your AndroidManifest.xml?」とメッセージが表示される。
A.「AndroidManifest.xml」に新規に追加した画面名の記述(<activity android:name=”画面名”></activity>)が足りていません。(参考サイト:Androidアプリ開発初心者がつまずきやすい6のポイント

Q.実行したら「Failed to install Test.apk on device ‘emulator-5554′: タイムアウト起動はキャンセルされました!」とメッセージが表示される。
A.AVD上にアプリをインストールする時間がかかりすぎたことによります。パソコンの性能が低いと起こるようです。タイムアウトの時間を調整します。Eclipseメニューの「ウィンドウ」→「設定」→「Android」→「DDMS」→「ADB接続タイム・アウト(ミリ秒)」の値が「5000」となっているところを例えば「20000」のように大きくします。

Q.実行したら「the user data image is used by another emulator. aborting」とメッセージが表示される。
A.「DDMS」パースペクティブに切り替え、「Devices」ビュー→「▼ボタン」→「Reset adb」をクリックします。あるいは、エミュレーターを再起動してキャッシュをクリアします。(参考サイト:Android、「emulator-5554 disconnected! Cancelling …」「emulator: エラー: the user data image is used by another emulator. aborting」eclipseのDDMSパースペクティブでandroidエミュレータのDevices情報やファイルエクスプローラが消える時の対処法エミュレータのエラーthe user data image is used by another emulator. aborting

Q.実行したら「警告: Application does not specify an API level requirement!」とメッセージが表示される。
A.
マニフェストファイル「AndroidManifest.xml」内にminSdkVersion が指定されていない
とこの警告が出ます。(参考サイト:GALAXY Tab の画面にフィットしないアプリケーション01.チュートリアル

<+α>

r20以降では「Androidプロジェクト」がないので戸惑いますが、「Androidアプリケーション・プロジェクト」が相当します。参考サイトを以下に記します。

ADTはバージョンにより構成が変わっているので、以前のバージョンで説明した本やサイトをみても話がかみ合いません。参考サイトを以下に記します。

Android プログラムを、Eclipseにインポートする際の参考サイトを以下に記します。

その他

アンドロイドアプリ開発環境を Pleiades All in One 4.2で構築する (Android 4.2 Jelly Bean)

・2012年12月31日 – Java SE 6 バージョンアップ(参考サイト:Oracle Blogs 日本語のまとめ-Java SE Updates)に伴い、 Java SE Development Kit 6 Update 37 →  Java SE Development Kit 6 Update 38 、jdk-6u37-windows-i586.exe → jdk-6u38-windows-i586.exe 、jdk1.6.0_37 → jdk1.6.0_38 といったように記述を修正しました。
・2012年11月25日 – Pleiades All in One のバージョンアップと Android 4.1 → Android 4.2 のバージョンアップに伴い、記述を修正しました。あわせて題字をAndroid 4.1→ Android 4.2に修正しました。
・2012年11月18日 より最新の Eclipse IDE with built-in ADT で Android 4.2 開発環境を構築する を別ページに記述しました。
・2012年10月20日 – Java Update に伴い、Javaのバージョンなどの記述を修正しました。
・2012年10月08日 – Pleiades All in One 4.2.1.v20121007 がリリースされたのに伴い Pleiades All in One のバージョンなどの記述を修正しました。


Eclipse Juno 対応の Pleiades All in One 4.2 の 32ビット版 がリリースされたので、アンドロイドアプリ開発環境を構築し直しました。

私のパソコンは32ビットで、当初の Pleiades All in One 4.2 は 64ビット版しかなかったため、利用をあきらめて Android4.1:Jelly Bean (Java6 update33 + Android SDK r20 + Eclipse4.2 + Pleiades1.3.4 + ADT r20)をインストールしてみた のように環境構築したのですが、Pleiades All in One 4.2 の 32ビット版ができたので開発環境をまっさらにしてインストールし直しました。

《事前事項1 漢字などの全角文字を含まないユーザー名でログインする》

漢字などの全角文字を含んだユーザー名でログインして環境を構築していくと、パスを認識してくれない不具合で、Android仮想端末(エミュレータ)を作成するときにエラーになります。漢字ユーザー名のまま作業した場合面倒になるのでおすすめしません。(参考サイト:全角ログオン名はトラブルの元ですAndroid SDK and AVD Manager が起動しない問題

《事前事項2 ファイルの拡張子が表示されるよう設定する》

Windows標準設定のままでは、ピリオド(.)以降の拡張子が表示されません。圧縮ファイルは「xxxxx.zip」、実行ファイルは「xxxxx.exe」というように、拡張子が表示されるほうがファイルタイプが判別しやすくなります。(参考サイト:ファイルの拡張子を表示するには?

  1. 「Windows」+「E」キーを押してエクスプローラを起動します。
  2. 「Alt」+「T」キーを押して、「フォルダオプション」をクリックします。
  3. 「表示」タブをクリックし「詳細設定」リストの中の「登録されている拡張子は表示しない」のチェックをはずし、「OK」ボタンをクリックします。

《事前事項3 以前の設定を削除する》

Java7、Java6両方と、Eclipse、Android SDK、AVD情報のある「.android」フォルダをすべて削除しました。

Java7とJava6はコントロールパネルの「プログラムと機能」を利用して削除します。Javaの削除は必須ではなく、残していてかまいません。手順1の最後の方で後述しますが、JREあり版のEclipseの場合は、残したJavaがあってもEclipseの起動に利用しません。

Javaを削除した場合、「Windows」キーを押しながら「R」キーを押して”ファイル名を指定して実行”画面の名前欄に「cmd」と入力し、「OK」をクリックして開いた”コマンドプロンプト”画面で、「java -version」と入力すると、「`java`は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」とエラーになります。

Eclipseはレジストリを汚していないのでアンインストールはファルダごと削除するだけです。Eclipse削除前に、過去のソースがある「workspace」フォルダはバックアップします。Eclipseを「Program Files」配下にインストールしていた場合は「.eclipse」フォルダができているので適宜削除します。

Android SDKはインストーラ版を利用していればスタートメニューに「Android uninstall」があるのでこれを選択します。zip版だった場合はAndroid SDKのフォルダごと削除します。

Android SDK Tools をインストールすると、「.android」フォルダが作成されます。「.android」フォルダには、Android SDK Tools のインストール先や、エミュレータの設定などの情報が保管されます。以前にAndroid SDK Tools をインストールしたことがあり、「.android」フォルダが存在する場合は、ADTプラグインインストール後のEclipse 再起動時に、”Android開発へようこそ”画面にならず、この先の説明と動きが異なります。Eclipseは一台のパソコンに複数存在させることが可能ですが、以前のAndroid環境導入済みのEclipseを残したまま、別のEclipseをインストールして別のAndroid開発環境を構築しようとしても、AVD情報などは同一の「.android」フォルダを共有する形になるので、”Android開発へようこそ”画面になりません。

「.android」フォルダの場所はWindowsのバージョンによって異なります。
Windows XP → C:¥Documents and Settings¥<user-name>¥.android
Windows Vista/7 → C:¥User¥<user-name>¥.android
になります。<user-name>はユーザー名(ログイン名)になります。

注意点として、Google Playにアプリを出したのであれば、通常は「.android」フォルダ内に本番用のkeystore(証明書)があります。紛失するとGoogle Playに出したアプリをアップデートできなくなるので退避します。(参考サイト:A_アプリのデジタル署名 

1.Eclipseのインストール

Eclipse日本語化プラグインのPleiadesプラグインを適用済みの、 Pleiades All in One JREあり Platform 版 をインストールします。Androidアプリ開発システム要件で、EclipseはJDT(Java Development Tool:Java開発ツール)プラグインを含んでいることとされており、EclipseのサイトではEclipse Classic 4.2.1版かEclipse IDE for Java Developers版かEclipse IDE for Java EE Developers版、Pleiades All in One 日本語ディストリビューションのサイトではUltimate版かJava版が相当します。Pleiades All in One のPlatform版はJDTプラグインを含まないので、アンドロイドアプリ開発環境構築に適さないようにみえますが、試したところADTプラグインインストールのタイミングでJDTプラグインも入るようです。そこで、軽量なPlatform版をベースに環境を構築することにしました。(プラグインで機能拡張できる開発環境 Eclipse

※私の環境32ビットオペレーティングシステムではPlatform版をベースに問題なく環境を構築できたのですが、64ビットオペレーティングシステム利用の方からUltimate版でなければ環境を構築できなかったという報告をいただきました。

  1. Pleiades All in One 日本語ディストリビューションで、Pleiades All in One 4.2.0.v20120707 (Eclipse 4.2.0 Juno for Windows ベース) 32ビット JREあり Platform Pleiades All in One 4.2.0.v20120804 (Eclipse 4.2.0 Juno for Windows ベース) JREあり Platform Pleiades All in One 4.2.1.v20121007 (Eclipse 4.2.1 SR1 Juno for Windows ベース) PlatformPleiades All in One 4.2.1.v20121123 (Eclipse 4.2.1 SR1 Juno for Windows ベース) 32bit Full Edition のDownloadアイコンをクリックします。
  2. ダウンロードした pleiades-e4.2-platform-32bit-jre_20120707.zip pleiades-e4.2-platform-32bit-jre_20120804.zip pleiades-e4.2-platform-32bit-jre_20121007.zip pleiades-e4.2-platform-32bit-jre_20121123.zip を右クリックし、「すべて展開」をクリックします。
  3. 「圧縮(ZIP形式)フォルダの展開」画面が開いたら、「ファイルを下のファルダヘ展開する」欄のフォルダを「C:\pleiades」(任意)に変えます。任意と書きましたが、「Program Files」フォルダは避けることを勧めます。WindowsVistaとWindows7では、「Program Files」フォルダはアクセス制限が働き、管理者権限で実行しないと更新に失敗するからです。(参考サイト:ANDROID開発環境構築、行き詰った個所まとめ。AndroidSDK Managerでアクセスが拒否されました。と更新に失敗するAndroidアプリを実機で試したいのですが、Android SDK ManagerでGoogle USB Driverをインストールしようとすると「アクセスが拒否されました」と表示されできません。
  4. 「完了時に展開されたファイルを表示する」にチェックを入れたまま「展開」をクリックします。
  5. 展開が終わるとエクスプローラが自動起動し、「C:\pleiades」フォルダが開くので、「pleiades」フォルダをダブルクリック→「eclipse」フォルダをダブルクリックします。
  6. 「eclipse.exe」を右クリック→「プロパティ」をクリック→「互換性」タブをクリックして、「特権レベル」の「管理者としてこのプログラムを実行する」にチェックが入っているのを確認し、「OK」をクリックします。
  7. 「eclipse.exe」をダブルクリックします。(あるいはAndroidアプリ開発環境を 42分で構築する(1時間切りに挑戦)の《2 Eclipse を起動する》を参考に適宜ショートカットを作成し、ショートカットから起動します。)
  8. 「ユーザーアカウント制御」画面が開き、「認識できないプログラムがこのコンピュータへのアクセスを要求しています。」と表示されるので、「許可」をクリックします。なお、前項で説明した「特権レベル」の「管理者としてこのプログラムを実行する」にチェックが入っていない場合は、「開いているファイル-セキュリティの警告」画面が開き、「発行元を確認できませんでした。このソフトウェアを実行しますか?」となります。(参考サイト:Windows Vista で “認識できないプログラムがこのコンピュータへのアクセスを要求しています” !?セキュリティがめんどくさいぞ…Windows7での開発
  9. Eclipseの起動スプラッシュ画面が表示され、「キャッシュのクリーンアップ中…この処理は数分かかる場合があります。しばらくお待ちください。」となるので、30秒ほど待ちます。
  10. 「ワークスペース・ランチャー」画面が開いたら、「ワークスペース」は「../workspace」のまま(変更しても良いですが、空白や漢字交じりのものはトラブルのもとなので避けます)、「この選択をデフォルトとして使用し、今後この質問を表示しない」をチェックし、「OK」をクリックします。(参考サイト:Eclipse の起動または終了時のダイアログ表示についてEclipse 3.5でワークスペースの選択ダイアログをカスタマイズする

ZIPファイルの解凍は、上で示したWindows展開ウィザードを利用します。それ以外の解凍ツールを利用した場合、Eclipse起動時に、Eclipse起動時エラーの傾向と対策に示したように「An error has occured. See the log file (XXXX)¥eclipse:¥configuration¥(起動時のエポック秒).log」とエラーになることがあります。

ZIP ファイルの関連付けが他の解凍ツールになされてるとWindows展開ウィザードになりません。非推奨の解凍ツールでも、解凍先のパス名が「C:\pleiades」といった短いものであれば解凍は失敗しないはずですが、Windows展開ウィザードで解凍したい場合の参考サイトを記します。(参考サイト:zipファイルの規定プログラムを誤って関連付けてしまったZIP ファイルの関連付けの設定を初期化したいWindows の関連づけ設定の仕組み

Javaを削除したことで、JRE(Java Runtime Environment:Java 実行環境)が存在しないはずなのにEclipseは起動します。Pleiades All in One の JREあり版は、Eclipseインストールフォルダ配下の「jre」フォルダにJREが組み込まれており、これを利用するからです。コンピュータ内に他にJava(JREやJDK)が存在したとしても、Eclipse自身が持っているJREが最優先で使用されます。

Eclipseに組み込みのJREがある場合は、環境変数「Path」でJava(JREやJDK)のパスを記述してあってもそれは使用されません。Eclipseメニューの「ヘルプ」→「Eclipseプラットフォームについて」→「インストール詳細」→「構成」タブをクリックして表示される情報の、「-vm」の次の行を見ると起動に使用されたJREを確認することができます。(参考サイト:Eclipse 起動時に使用されている Java VM を確認してみよう

2.JDK(Java SE Development Kit:Java 開発キット)のインストール

Androidアプリ開発システム要件ではJDK6を利用するよう書かれているので、JDK7ではなくJDK6をインストールします。Androidアプリ開発環境を 42分で構築する(1時間切りに挑戦)で利用したPleiades All in One JREあり Java 版は、JDK6を含んでいたので、別途JDKのインストールをしませんでした。けれども、Platform 版は、いずれのJDKも含んでいないので、JDKのインストールをおこないます。

  1. Java SE Downloadsへ進み、Java SE 6  Update 33 Update 34 Update 35 Update 37 Update 38 のJDK のDOWNLOADアイコンをクリックします。
  2. Java SE Development Kit 6 Update 38 の「Accept License Agreement」にチェックを入れ、「jdk-6u38-windows-i586.exe」を選択します。
  3. ダウンロードが終わると自動でインストールが始まります。(自動で開始しない場合はダウンロードした「jdk-6u38-windows-i586.exe」をダブルクリックします。)
  4. 「ユーザーアカウント制御」画面が開き、プログラムを続行する許可を求められるので、「続行」をクリックします。
  5. 「Java(TM)SE Development Kit 6 Update 38 - セットアップ」画面が開くので、「次へ」をクリックします。
  6. 「カスタムセットアップ」画面になり、「開発ツール」・「ソースコード」・「公開JRE」(同一バージョンの「公開JRE」がインストール済みの場合表示されません)・「JavaDB」(JDK7の場合は表示されません)が表示されます。今回は「開発ツール」・「ソースコード」だけインストールしようと思うので、「公開JRE」・「JavaDB」は行頭のドライブアイコン左クリックし「この機能を使用できないようにします。」を選択します。 「開発ツール」・「ソースコード」のインストール先は、デフォルトの「C:\Program Files\Java\jdk1.6.0_38\」のままとし、「次へ」をクリックします。(「JavaDB」をインストールする場合、「JavaDB」のインストール先のデフォルトは「C:\Program Files\Sun\JavaDB\」で、「開発ツール」・「ソースコード」のインストール先とは異なります。)
  7. 「Java(TM)SE Development Kit 6 Update 38 - 完了」画面になったら「完了」をクリックします。
  8. ブラウザが起動し「Java Development Kit (JDK) Registration」画面が開き、利用者登録を促されますが、しなくてもJavaは使用できるので、ブラウザ画面を閉じます。

※よくわからなければ「開発ツール」・「ソースコード」・「公開JRE」・「JavaDB」を全部インストールして問題ないので、デフォルト(規定の設定)のままでインストールしてください。(参考サイト:Java 6のJava DBでデータベースJava DB に関するよくある質問 (FAQ)

※最低限「開発ツール」だけをインストールすればAndroid環境は構築できます。「ソースコード」をインストールしなかった場合、プログラム実行時にエラーになってデバッグモードで標準APIのclassファイルにステップインする際に、「ソースが見つかりませんでした。」と表示され戸惑います。そのため、「ソースコード」もインストールするのが良いと思います。

※最初に「開発ツール」だけをインストールし、後からやはり「ソースコード」もインストールしたいなど、インストールの構成を変えたい場合は、ダウンロードフォルダに残っている「jdk-6u38-windows-i586.exe」をダブルクリックします。「ユーザーアカウント制御」画面に続き、「このソフトウエアは使用中のコンピュータにすでにインストールされています。再インストールしますか?」と問われるので「はい」をクリックします。「カスタムセットアップ」画面で希望するインストールの構成を選択し直します。(「インストールパッケージを開くことができませんでした。パッケージが存在し、アクセスできることを確認してください。またはアプリケーション ベンダに問い合わせ、このパッケージが有効な Windows インストーラ パッケージであることを確認してください。」となってしまった場合は「OK」をクリックし、もう一度やりなおせば再インストールできます。)

※Java SE 6 のサポートは当初2012年7月まででしたが、 2012年11月へ変更され、さらに 2013年2月まで延長されています。(参考サイト:Oracle Java SE サポート・ロードマップOracle Java SE Support Roadmap

3.環境変数の設定

環境変数の設定についてはEclipseとJREとJDKの「パスをとおす」や「「Path」の設定確認」を一読いただくといいかもしれません。

  1. 「Windows」キーを押しながら「Pause」キーを押して「システム」画面を開き、左欄のタスク上から4つ目の「システム詳細設定」をクリックします。(参考サイト:Windows XPマシンで[システムのプロパティ]を簡単に起動したい
  2. 「ユーザーアカウント制御」画面が開いたら「続行」をクリックします。
  3. 「システムのプロパティ」画面が開いたら、詳細設定タブの「環境変数」をクリックします。
  4. 「環境変数」画面が開いたら、システム環境変数の「新規」ボタンをクリックします。
  5. 「新しいシステム変数」画面が開いたら、変数名に「JAVA_HOME」、変数値に「C:\Program Files\Java\jdk1.6.0_38」と入力し、「OK」をクリックします。”Program”と”Files”の間に半角空白がありますが 「”C:\Program Files\Java\jdk1.6.0_38″」とダブルクォーテーションで括る必要はありません。既にシステム環境変数に「JAVA_HOME」が存在する場合は、「JAVA_HOME」をダブルクリックし、変数値を「C:\Program Files\Java\jdk1.6.0_38」に置き換え、「OK」をクリックします。
  6. 次に、システム環境変数「Path」をダブルクリックします。「システム変数の編集」画面が開き、既存の変数値が表示されたら、変数値入力欄をクリックし、左矢印キーで確実に入力値の文字列先頭まで移動し、文字列先頭に「%JAVA_HOME%\bin;」を追記します。
  7. コマンドプロンプトでAndroidツールズを起動する場合を考えて、システム環境変数「Path」の最後に「;C:\android-sdk\tools;C:\android-sdk\platform-tools」も追記します。
  8. 「システム変数の編集」画面で「OK」をクリックします。
  9. 「環境変数」画面で「OK」をクリックします。
  10. 「システムのプロパティ」画面で「OK」をクリックします。
  11. 「Windows」キーを押しながら「R」キーを押して”ファイル名を指定して実行”画面の名前欄に「cmd」と入力し、「OK」をクリックして”コマンドプロンプト”画面を開きます。環境変数を設定するときに既に開いていた”コマンドプロンプト”画面がある場合、その画面には変更した設定が反映されません。新しい別の”コマンドプロンプト”画面を開く必要があります。
  12. 「java -version」と入力すると「java version “1.6.0_38″」が、「javac -version」と入力すると「javac 1.6.0_38」が表示されれば正しく設定されています。期待通りにならない場合は、「Path」と入力して設定を確認します。なお、両コマンドの「-version」オプションの部分はすべて小文字で入力しないと、「Unrecognized option: -VERSION  Could not create the Java virtual machine.」や「javac: -VERSION は無効なフラグです。」といったエラーになります。このように大文字と小文字を違うものとして認識することをケースセンシティブ(Case sensitive)といいます。

※私の環境の場合を例にとると、元々のシステム環境変数「Path」の値が「%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Edy\Edy Library;C:\Program Files\Common Files\Adobe\AGL;C:\Program Files\Common Files\Sony Shared\FeliCaLibrary;c:\Program Files\Common Files\Roxio Shared\DLLShared\;c:\Program Files\Common Files\Roxio Shared\DLLShared\;c:\Program Files\Common Files\Roxio Shared\9.0\DLLShared\;C:\Program Files\Common Files\Ulead Systems\MPEG;C:\Program Files\Justsystems\JSLIB32;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\」 だったので、修正反映後は 「%JAVA_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Edy\Edy Library;C:\Program Files\Common Files\Adobe\AGL;C:\Program Files\Common Files\Sony Shared\FeliCaLibrary;c:\Program Files\Common Files\Roxio Shared\DLLShared\;c:\Program Files\Common Files\Roxio Shared\DLLShared\;c:\Program Files\Common Files\Roxio Shared\9.0\DLLShared\;C:\Program Files\Common Files\Ulead Systems\MPEG;C:\Program Files\Justsystems\JSLIB32;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\android-sdk\tools;C:\android-sdk\platform-tools」 となります。

※パソコンのメーカーや、インストールしたソフトの構成により「Path」の値は異なるので、上記の設定はあくまで参考程度にみてください。

4.ADT(Android Development Tools:アンドロイド開発ツール群)プラグイン インストール

ADTプラグインインストール時は、Eclipse画面右下側にプラグインのインストール中をあらわす緑色のメーターが表示されます。ただし、画面解像度の横幅が1125ピクセル以下は、Eclipseを全画面表示にしても、ヒープ・ステータスの表示に隠れてメーターが表示されないようです。ですからHD(1280×720)なら表示されますが、XGA(1024×768)だと表示されません。(参考サイト:画面解像度

Eclipseメニューの「ウィンドウ」→「設定」→「一般」を選択し、右側ペインの「ヒープ・ステータスを表示」のチェックをはずして「OK」をクリックしてから作業をすれば、メーター表示用の領域が確保され、インストール中にメーターが表示されるはずです。また、メーターの右にある「進行状況ビューでバックグラウンド操作を表示」アイコンをクリックするか、Eclipseメニューの「ウィンドウ」→「ビューの表示」→「進行状況」を選択すると、「進行状況」タブが現れ、インストール進行状況を観察できます。

情報表示領域が狭い場合は、「進行状況」タブをダブルクリックすると、進行状況ビューが全画面表示になります。戻すには再度「進行状況」タブをダブルクリックします。

進行状況に気を払えば、プラグインのインストールが終了したと思い込んで次の手順へ進んでしまうミスを防ぐことができます。

  1. Eclipseメニューの「ヘルプ」→「新規ソフトウエアのインストール」をクリックします。
  2. 「インストール」画面が開いたら、作業対象欄の右にある「追加」をクリックします。
  3. 「リポジトリーの追加」画面が開いたら、名前欄に「ADT Plugin」(またはAndroid Pluginなど任意の名前で結構です)と入力し、「ロケーション」欄にリモートアップデートサイトとして「https://dl-ssl.google.com/android/eclipse/」を入力します。
  4. 「インストール」画面の名前欄に「開発ツール」「NDKプラグイン」が表示されているので、「すべて選択」をクリックし、「次へ」をクリックします。
  5. 早ければ1分もかからず次へすすむのですが、時間帯によっては「要件および依存関係を計算。:http://download.eclipse.org/releases/juno/201209280900/からxxx.jarを取り出し中(x.xxkB/sでx.xxMB件中x.xxMB件)」を表示したまま、その文字の下にある進捗メーターがなかなか変化しないことがあります。あまりに反応がない場合、進捗メーター右の赤い四角ボタンをクリックして中止することができます。改めて「次へ」をクリックするとメーターがスムーズに変化することもあります。場合によっては5分以上待たされることもあります。
  6. やがて「インストール詳細」になり、「Android DDMS」・「Android 開発ツール(Android Development Tools)」・「Android 階層ビューアー(Android Hierarchy Viewer)」・「Android ネィティブ開発ツール(Android Native Development Tools)」・「Android トレースビュー(Android Traceview)」・「OpenGL ES用トレーサー(Tracer for OpenGL ES)」が表示されたら、「次へ」をクリックします。
  7. 「ライセンスのレビュー」になったら、「使用条件の条項に同意します」にチェックをし、「完了」をクリックします。
  8. 1分弱かかってインストール進行状況メーターが50%を超えた頃に「セキュリティ警告」画面が開き、「警告: 署名なしコンテンツを含むソフトウエアをインストールしています。このソフトウエアの真正性または妥当性を実証できません。インストールを続行しますか?」と問われるので、「OK」をクリックします。
  9. 「ソフトウエア更新」画面が開き、「変更内容を有効にするには、Eclipse プラットフォーム を再始動する必要があります。すぐに再始動しますか?」と問われたら、「はい」をクリックします。

画面キャプチャーのある参考サイトをあげておきます。(参考サイト:Javaで作って遊ぶ: Eclipse4.2でAndroid開発環境を作る

TraceviewとAndroid Lintの参考サイトトをあげておきます。(参考サイト:Traceviewを使うAndroid Lint の利用方法デバッグと自動ビルド

※「ロケーション」欄に「https://dl-ssl.google.com/android/eclipse/」として接続に失敗する場合は、リモートアップデートサイトを「http://dl-ssl.google.com/android/eclipse/」に変えて試します。

※リモートアップデートはネットワークが不安定だとエラーになりやすく、その場合、あらかじめADTプラグインZIPファイルをダウンロードしておいてインストールする方法があります。まず、Installing the Eclipse Plugin の Download the ADT Plugin zip file (do not unpack it): の下にあるADT 20.0.0.zip ADT 20.0.1.zip ADT 20.0.2.zip」「ADT 20.0.3.zipADT 21.0.0.zip」をクリックしダウンロードします。「リポジトリーの追加」画面で、「ロケーション」欄の右にある「アーカイブ」をクリックし、ファイル選択画面が開いたら、ダウンロード済みの、ADT 20.0.0.zip ADT 20.0.1.zip ADT 20.0.2.zip」「ADT 20.0.3.zipADT 21.0.0.zip」を選択し、「開く」をクリックします。「リポジトリーの追加」画面の「ロケーション」欄に値が入るので、「OK」をクリックし、「リポジトリーの追加」画面を閉じ上記手順4.以降をおこないます。

※「アーカイブ」をクリックし、未解凍の「ADT 21.0.0.zip」を選択するかわりに、「ローカル」をクリックし、「ADT 21.0.0.zip」を解凍したフォルダを選択する方法もあります。

※「リポジトリーの追加」画面で、追加を誤るなどして追加作業対象を破棄したい場合は、作業対象欄の下の「”使用可能なソフトウエア・サイト”」という文字リンクをクリック→破棄したい対象の行をクリック→「除去」をクリックし、「サイトの除去」画面が開いたら「はい」をクリックし、「OK」をクリックします。

※「リポジトリーの追加」画面で、追加しようとしたら「ロケーションの重複」とエラー表示される場合は、作業対象欄の下の「”使用可能なソフトウエア・サイト”」という文字リンクをクリックして、ロケーションの登録状況を確認します。「https://dl-ssl.google.com/android/eclipse/」が登録済みのリストに存在するはずなので、上記の追加作業のかわりに、既存のものを選択すればOKです。

5.Android SDK(Software Development Kit:ソフトウエア開発キット)をインストール

(2012年11月25日 追記) Eclipse が再起動すると、Eclipseの「ようこそ」画面の上に、「Android 開発へようこそ」画面が開き、さらに上に「設定で Android SDK のロケーションが設定されていません。」と表示されます。「閉じる」をクリックします。

「Android 開発へようこそ」画面が開き、「新規SDKのインストール」か、「既存SDKを使用」かを問われます。なお、最初に述べたように、事前に「.android」フォルダが存在していると「Android 開発へようこそ」画面にはなりません。Android開発環境構築済みとみなされるためです。その場合、Eclipse メニューの「ウィンドウ」→「設定」→「Android」をクリックすると、Android設定のSDKロケーション欄に既存のAndroid SDKの場所が表示されるはずです。設定画面を閉じ、6.の手順へ進んでAndroid SDKの内容を更新するとよいでしょう。または以前の環境を破棄してよければ、「.android」を削除し、Eclipse メニューの「ヘルプ」→「Eclipseについて」→「インストール詳細」→「インストール済みのソフトウエア詳細」タブで「ctrl」キーを押しながら「Android DDMS」・「Android 開発ツール(Android Development Tools)」・「Android 階層ビューアー(Android Hierarchy Viewer)」・「Android ネィティブ開発ツール(Android Native Development Tools)」・「Android トレースビュー(Android Traceview)」・「OpenGL ES用トレーサー(Tracer for OpenGL ES)」をクリックし、「アンインストール」をクリックし「完了」をクリックしてから手順4.をやり直してください。

  1. 標準の「新規SDKのインストール」-「Android APIの最新の使用可能なバージョンをインストール(すべての最新フィーチャーをサポート)」のチェックを入れたまま、ターゲット・ロケーションを「C:\android-sdk」(空白や漢字などの全角文字を含まない任意の名前にします。Cドライブ意外に作るとAVDが標準では起動せずシンボリックリンクを作成する手間が増えるので、Cドライブへ作成することが望ましいです。)とし、「次へ」ボタンをクリックします。(参考サイト:Androidのエミュレータがavdファイルを上手く見つけてくれない件について
  2. 使用統計をGoogleへ送信するか問われるので、「はい」「いいえ」どちらかを選択し「完了」ボタンをクリックします。(私は「いいえ」を選びました。後からEclipse メニューの「ウィンドウ」→「設定」→「Android」→「使用統計」→「使用統計をGoogleに送信する。」のチェックを入れるで、「はい」を選んだのと同じにできます。)
  3. “インストールするパッケージの選択”画面になり、”Android SDK Tools”、”Android SDK  Platform-tools”、”SDK platform Android 4.1” ”SDK platform Android 4.2”が表示されます。 「すべて受諾」をチェックし、「インストール」をクリックします。
  4. (2012年11月25日 追記) 「Android SDK マネージャー」の小窓が開き、緑色の進捗メーターが伸びていきます。伸びきるのを待ちます。文字が見れなければ、ドラッグして表示領域を広げることができます。終了すると自動的に閉じます。
  5. (2012年11月25日 追記) 「ようこそ」タブの「×」をクリックして「ようこそ」画面を閉じ、ワークベンチを表示します。
  6. (2012年11月25日 追記) Eclipse メニューの「ウィンドウ」→「パースペクティブのカスタマイズ」→ 「コマンド・グループの可用性」タブで 「Android SDK および AVD マネージャー」のチェックを入れ、「OK」をクリックします。これをしないとEclipseメニューの「ウィンドウ」に「Android SDK マネージャー」と「Android 仮想デバイス・マネージャー」が表示されなくなりました。

Android Developers→Get the SDK→画面左下の「DOWNLOAD FOR OTHER PLATFORMS」をクリックであらわれる Android SDKのインストーラ版installer_r20.0.3-windows.exeinstaller_r21.0.0-windows.exe)を利用する場合は、「Android 開発へようこそ」画面を閉じてください。

インストーラ版は、起動すると最初にJavaの存在チェックがあります。環境変数「JAVA_HOME」にJDKのインストール場所を設定しておけば問題なく通過できます。「Choose Users」画面では規定値の「Install just for me」、インストールフォルダーは「C:\android-sdk」にします。インストールが進むとAndroid SDK Managerが自動起動します。なお、画面起動時にあらかじめインストール候補としてチェックが入っている対象が「Android 開発へようこそ」画面を経由して起動するAndroid SDK Managerのものとは違います。そのまま「Install 9 packeges」ボタンをクリックしてもよいですし、Android4.1エミュレータの作成には関係しない「Documentation for Android SDK」・「Samples for SDK」・「Google APIs」・「Sources for Android SDK」をインストール対象から除いてもよいです。この段階では、Android仮想デバイスでAndroid4.1しかない状態です。Android SDK Managerで希望するバージョンを追加インストールできます。

※Android SDKをインストーラ版でインストールすると、Windows画面左下の「スタートメニュー」→「すべてのプログラム」→「Android SDK Tools」ができ、ここから「AVD Manager」と「SDK Manager」の起動と「Uninstall Android SDK Tools」の実行が可能になります。

6.Android SDK Managerでコンポーネントを追加する

  1. Eclipseメニューの「ウィンドウ」→「Android SDK マネージャー」をクリックし、「Android SDK マネージャー」画面を開きます。起動時の画面幅では文字が隠れて見えない箇所もあるので、枠を広げると見やすくなります。
  2. 画面が起動すると、「Android SDK Tools」、「Android SDK Platform-tools」、Android4.1(API 16) Android4.2(API 17)の「SDK Platform」の計3ヶ所が「Installed」になっています。また、インストール候補としてAndroid4.1(API 16)の「ARM EABI v7a System Image」・「Intel x86 Atom System Image」と「Google USB Driver」にチェックが入っています。 Android4.2(API 17)の「ARM EABI v7a System Image」にチェックを入れます。
  3. そのまま「Install 3 Packages…」(3パッケージのインストール…) 「Install 1 Package…」をクリックします。
  4. 「インストールするパッケージの選択」画面が開くので、「Accept All」(すべて受諾)をチェックし、 「Install」(インストール)をクリックします。
  5. 「Done loading Packages.」(パッケージのロードが完了しました。)と表示されたら右上角の「X」をクリックして画面を閉じます。
  6. Eclipse メニューの「ファイル」→「再開」をクリックし、Eclipseを再起動します。再起動しないと、エミュレータ作成画面にコンポーネントの更新が反映されません。

Android4.0以上では「ARM EABI v7a System Image」が「Not installed」のまま「AVD マネージャー」でエミュレータを作成しようとすると、「Unable to find a ‘userdata.img’ file for ABI armeabi to copy into the AVD folder.」とエラーになるので、「ARM EABI v7a System Image」は必ずインストール対象にします。「Documentation for Android SDK」・「Samples for SDK」・「Google APIs」・「Sources for Android SDK」はエミュレータの作成には関係しないので、必須ではありません。Android SDK Managerで希望するバージョンを追加インストールします。

Intel x86 Atom System Image(参考サイト:Android SDKアップデート、Windows/Macでエミュレータが高速に

Google USB Driver(参考サイト:実機を使ってデバッグする

7.Eclipseの設定

ビルド・コンパイルに使用されるライブラリが先ほどインストールしたJDK6になるよう設定します。(参考サイト:【eclipce】JREからJDKへ変更する方法(jspを使うためには必須)

  1. Eclipse メニューの「ウィンドウ」→「設定」をクリックします。(”設定”画面が開きます。)
  2. 左側ペイン(領域)で「Java」(文字の左側にある三角印をクリックします)→「コンパイラー」をクリックし、右側ペインの「コンパイラー準拠レベル」が「1.6」であることを確認します。なお、下段には、「1.6 準拠を選択する場合は、JREがインストール済みでアクティブにされていることを確認してください。(現在は 1.7)」と警告がでているはずです。
  3. 左側ペインで「Java」→「インストール済みのJRE」をクリックします。(インストール済みのJRE欄に、名前「eclipse」、ロケーション「C:\pleiades\pleiades\eclipse」とEclipse組み込みのJREが表示され、チェックが入っているはずです。)
  4. 「追加」をクリック→「標準VM」を選択し「次へ」をクリック→「ディレクトリー」をクリックします。
  5. フォルダの参照画面から、「コンピュータ」≫「ローカルディスク(C:)」≫「Program Files」≫「Java」≫「jdk1.6.0_38」を選択し、「OK」をクリックします。
  6. JREシステムライブラリー欄にjarファイルが列挙されたのを確認して「完了」をクリックします。
  7. インストール済みのJRE欄に、名前が「jdk1.6.0_38」でロケーションが「C:\Program Files\Java\jdk1.6.0_38\」で追加表示されているので、チェックを入れ選択します。
  8. 「OK」をクリックします。これで、もう一度「Java」→「コンパイラー」で確認すると、先ほどの警告は消えているはずです。

Eclipseをチューニング 設定方法によりその他も自分好みに設定します。Pleiades All in Oneを利用したことで、デフォルトの文字コードがAndroid標準文字コードの「UTF-8」に設定されるので、文字コードを「MS932」から変更する作業は発生しません。

8.AVD(Android Virtual Device:Android仮想端末) Managerでエミュレータを作成

  1. Androidアプリ開発環境を 42分で構築する(1時間切りに挑戦)に同じです。

※AVDの起動には時間がかかります。高速化方法として参考サイトを試してください。(参考サイト:Androidエミュレータの起動が遅いのは一発で高速化できるAndroid爆速エミュレータ環境の作り方

※漢字や空白を含んだユーザー名でログインしている場合や、マイドキュメントの位置をDドライブに移動している場合は、AVDの起動に失敗し、「PANIC: Could not open:~」とエラーになります。(参考サイト:eclipseでエミュレーター起動時に「PANIC: Could not open: C:\Users\xxx\.android/avd/AVD2.1-2.ini」が出た時の対処法

※Android SDK r20 では、android4.1エミュレータが使える代わりに、AVDでパソコンのキーボードからの入力ができなくなったようです。ソフトウェアキーボードしか使えないのでは不便ですから、PCのキーボードで入力する方法として参考サイトを試してください。(参考サイト:Android SDK R20 の emulator でハードウェアキーボードが使えないadbを使って端末にキーイベントを送るAndroidでkeyイベントを発生させるinputコマンドをサクサクにする

※プログラミングの参考になるようなサイトは、プログラミング参考サイトのAndroidの項目にまとめてあります。

※エラーが出る場合はEclipse起動時エラーの傾向と対策Androidエラーの傾向と対策を参考にして下さい。

※Androidプロジェクトを作成する部分がr20から以前とは変わっています。『作りながら覚えるAndroidプログラミング 改訂版』-Android SDK 4.1(Jelly Bean)への対応と修正点についてAndroidアプリ開発環境をVMware上CentOS6.4に構築3/3を参考にするといいでしょう。

以上です。

「ピ!ピ!ピ!ポーン!ポーン!」  うるう秒がらみで日付表示を調べてみる

日本時間2012年7月1日(日)午前8時59分59秒と午前9時00分00秒の間に8時59分60秒がうるう秒として挿入されたのをきっかけとして、少し調べてみたことを記述します。うるう秒の制度は1972年に始まったもので、今回で25回目となります。(時報が「ポーン!ポーン!」と、8時59分60秒と9時の2回続けて鳴るのはひかり電話限定)

1秒の長さは、地球の自転を基にして平均太陽日の86400分の1とされていました。(参考サイト:Wikipedia – 太陽時

1927年に、最初のクォーツ時計がベル研究所で作成され、1932年には、クォーツ時計によって地球の微小な週変化が計測され、地球の自転にはふらつきがあることから1秒の長さも一定ではなく時間の定義にはそぐわないと判断され始めました。

1956年に、1秒の長さは、地球の公転を基にして1900年1月0日12時から1太陽年の31556925.9747分の1と改められました。(参考サイト:Wikipedia – 暦表時

1967年に、1秒の長さは、セシウム133が9192631770回振動する時間(原子時)に見直されました。(参考サイト:Wikipedia – 原子時計7月1日のうるう秒「午前8時59分60秒」を実感するには~将来は廃止の可能性も

ストロンチウム原子に基ずく理論的には300億年に1秒以下の誤差の光格子時計が研究されています。世界最高水準の原子時計は3000万年に1秒以下の誤差なので、1000倍精度が上がることになります。2006年9月、国際度量衡委員会の諮問委員会で、秒の二次表現の候補として採択され、2006年10月に行われた国際度量衡委員会で正式に秒の二次表現にすることが決定されており、将来1秒の定義が変わるかもしれません。(参考サイト:ストロンチウム(Sr)原子を用いた光格子時計の研究開発

天文観測から得られる地球の自転・公転に基づく時系をUT(Universal Time:世界時)といい、細かくはUT0, UT1, UT2にわかれます。UT0は、平均太陽時と呼ばれるもので、天文観測によって得られる恒星時から計算で求められます。地球上の位置・季節により変動します。UT1は、UT0から、地球上の位置による変動を取り除いたものです。UT2は、UT1から、季節変動による影響を取り除いたものです。(参考サイト:IBM – 2012年7月1日のうるう秒のAIXおよびHMC,SDMC への影響について) GMT(Greenwich Mean Time:グリニッジ標準時)はUT1に相当します。(参考サイト:Wikipedia – グリニッジ標準時)、

1955年、セシウム原子時計に基づく時間TAI(Temps Atomique International:国際原子時)が運用され始めました。1958年1月1日0時0分0秒を基点とします。(参考サイト:Wikipedia – 国際原子時

地球の自転は徐々に遅くなっていて、UT1はTAIよりも徐々に遅れていっています。UTC(Coordinated Universal Time:協定世界時)は、1秒の定義は原子時としつつ、うるう秒(leap second)調整によりUT1 の時間に近づけようとしたものです。うるう秒の実施日時は、自転のふらつきが予測できないため定期的ではなく、そのつど予告されます。UTC基点の1972年1月1日0時0分0秒は、TAIの1972年1月1日0時0分10秒です。1972年6月30日に第1回目の「うるう秒」があり、今回の2012年6月30日(日本時間で2012年7月1日午前8時59分60秒)は25回目の「うるう秒」でした。これでUTCは、TAIより「35秒」遅れになりました。1958年から50年ほどの間に、地球の自転が積算値で35秒遅くなったと言えます。(参考サイト:原子時と 「うるう秒」電波時計のしくみ

2つのUTC時刻間の正確な値は、その間に「うるう秒」が何回あったかを参照する必要があるので、複数年にわたる長い時間を正確に測定することが求められるような科学的用途の多くにはUTCよりもTAIが用いられます。(参考サイト:Wikipedia -国際原子時

多くのオペレーティングシステムは、1日を24時間・1440分(60分×24)・86400秒(60秒×60×24)とし、うるう秒を考慮しないUNIX Timeが用いられているようです。「2012-06-30 23:59:60 UTC」といったうるう秒の日付文字列を受けとった場合の動作を確認しておくのがよいでしょう。(参考サイト:Microsoft - うるう秒に関するサポートについてIBM - Linux システムクロックの『うるう秒』調整2012 年 7 月 1 日のうるう秒挿入時に発生した Linux カーネルの不具合に関する情報

UNIX Time(ユニックスタイムスタンプ または エポック秒)

  • UNIX Timeは、1970年1月1日0時0分0秒(UNIX epoch)を基点とする積算秒数です。なお、1970年1月1日は木曜日でした。
  • 多くのシステムでは、POSIX(Portable Operating System Interface for UNIX:UNIXを始めとする各種OSにおける共通インターフェース)仕様でUNIX Timeをカウントしており、この仕様はうるう秒を考慮していません。
  • 23回目のうるう秒直後の2006年1月1日0時0分0秒時点のUNIX Timeは、POSIX仕様では1136073600秒、POSIX仕様でない場合は1136073623秒でした。
  • 24回目のうるう秒直後の2009年1月1日0時0分0秒時点のUNIX Timeは、POSIX仕様では1230768000秒、POSIX仕様でない場合は1230768024秒でした。
  • 25回目のうるう秒直後の2012年7月1日0時0分0秒時点のUNIX Timeは、POSIX仕様では1341100800秒、POSIX仕様でない場合は1341100825秒でした。
  • POSIX仕様の場合、うるう秒の「2012-06-30 23:59:60 UTC」 と 通常秒の「2012-07-01 00:00:00 UTC」は、どちらもUNIX Timeは同じで1341100800秒になります。
  • 日本標準時2005年3月18日10時58分31秒は、UNIX Timeで1111111111秒でした。
  • 日本標準時2009年2月14日8時31分30秒は、UNIX Timeで1234567890秒でした。
  • UNIX Timeを、符号付き32ビット整数で扱うと、2147483647秒(21億4748万3647秒)(2038年1月19日3時14分7秒)を超えると桁あふれが起こります。UNIX Timeを、符号付き32ビット整数で扱っているシステムへの影響が危惧され、2038年問題と呼ばれています。
  • C言語で組まれているシステムの場合、時刻をtime_t型で管理・処理します。time_t型の実装はsigned long int型(符号付き32ビット整数)が多く、2038年問題がおこります。(参考サイト:2038年問題 日付算出
  • unsigned long int型(無符号32ビット整数)とすれば2106年2月7日まで問題を回避できます。
  • 1999年に策定されたC99の規格を反映したtime_t型をunsigned long long型(無符号64ビット整数)で実装している処理系なら、292471210647(2,924億7,121万647)年6月12日まで問題はおこりません。(292471210647年問題?)
  • 2001年9月9日にUNIX Timeが10進法表記で9桁から10桁になりましたが、文字列表現でソートすると「1000000000」<「999999999」となり、項目が正しい順番で並ばなくなることによる不具合が発生し、2001年9月9日問題と呼ばれました。次に桁が増えて10桁から11桁になるのは2286年になります。
  • JavaでSystem.currentTimeMillis()で取得できるシステム現在時刻は、long型(符号付き64ビット整数)のミリ秒単位のUNIX Timeです。カレンダーオブジェクトや日付オブジェクトで、Calendar#getTimeInMillis()、Date#getTime()で取得するUNIX Timeもミリ秒単位です。秒単位ではないので1000で割るなどの処理が必要です。
  • Javaで日付や時刻をあつかうための基本となるクラスは、java.util.Dateとjava.util.Calendarクラスですが、java.util.Dateクラスのほとんどのメソッドが非推奨となっているので、相当するjava.util.Calendarクラスのメソッドを使用します。(参考サイト:Androidにおける日付処理の基本
  • java.util.Dateなどの時刻を表すAPIは、秒数を表すメソッドで0~61秒を表現できますが、実際には、うるう秒を正確に追跡する必要がある実装でのみ使われます。通常、(2012年7月1日12時0分0秒)-(2012年6月30日12時0分0秒)の計算結果は、期間中にうるう秒があるにもかかわらず86401秒ではなく86400秒になります。
  • 2つの日付の差は、最初に 2 つの日付を UNIX Time に変換し、次にその開きを計算し、 でた値を1日の時間である 86,400,000 ミリ秒割ることで求めることができます。(参考サイト:Java 2つの日付の差を求める
  • http://www.convert-unix-time.com/で、UNIX Timeと日時の変換ができます。

NTP Time(Network Time Protocol Time:ネットワーク時刻同期プロトコルで使用される時刻)

  • NTPは、ネットワークに接続される機器において、機器が持つ時計を正しい時刻へ同期するためのプロトコルです。(参考サイト:NTPによる時刻合わせについてWindows OSにおける時刻同期サービスとNTP
  • 一般的なOSでは、NTPサーバ・クライアントモデルのクライアントに相当する機能を持ち、NTPサーバへアクセスし、機器内部の時計の時刻をNTPサーバの時刻に合わせることで内部時計の誤差を少なくするように努めます。
  • NTPは動作が複雑なので、クライアント向けにの簡易版のSNTP(Simple Network Time Protocol)がRFC2030で定義されています。これはサーバに正確な時刻を問い合わせる用途に特化したものです。
  • NTP Timeは、1900年1月1日0時0分0秒を基点とする積算秒数です。
  • 1900年1月1日は月曜日です。
  • NTP timeとUNIX Timeの差は25567日で、秒で表すと2208988800秒(60秒×60分×24時間×25567日)の差があります。
  • うるう秒挿入時は、2秒で1秒進むように調整されます。
  •  NTP Timeは、符号なし32ビット整数で表現され、4294967295秒(42億9496万7295秒)(2036年2月7日 6時28分15秒)の次の秒は、桁あふれして1900年1月1日0時0分0秒と同じ値に見えます。NTPで時刻調整を行っているシステムへの影響が危惧され、2036年問題と呼ばれています。(参考サイト:2036年問題の日付訂正あなたの時計は大丈夫? 「想定外」だった日時の不具合
  • 2036年問題の日時は、Wikipediaなどでは2036年2月6日 6時28分15秒とされていますが、RFC4330では2036年2月7日 6時28分15秒と記述されており、当サイトはこれに従っています。(参考サイト:NTPの西暦2036年問題の日時について
  • 2036年問題については、実際には、NTP の最上位ビットが0の場合を2036年から2104年、最上位ビットが1の場合を1968年から2036年と解釈する仕様があるようです。(参考サイト:ネットで時刻を合わせるプロトコル—SNTPRFC-2030 日本語訳の「3. NTP タイムスタンプ フォーマット」の説明)
  • 日本標準時プロジェクト 公開NTPで、NTPサービスを説明しています。

タイムゾーン(Time zone)

ロケール(Locale)

  • ロケールとは、同じ言語や習慣を共有している、地理的、政治的、または文化的に特定の地域のことで、言語コード、国コード、バリアントコードから成り立ちます。バリアントコードとは、「EURO(ユーロ)」のように言語や国では指定できない地域を識別したり、言語や国をさらに詳述する情報を与えたりするコードです。
  • 日時の表記や通貨の単位の処理はロケールに依存します。(参考サイト:ロケールに依存した処理ローカライゼーション (L10N)
  • java.util.Locale.getDefault()で、現在のロケール情報が取得できます。
  • JavaのCalendarクラスのgetInstance()メソッドを呼び出すと、現在のロケール
    で使用されているカレンダーのインスタンスを作成します。(参考:CalendarとGregorianCalendar
  • 日本のロケールは、言語が「ja」、国が「JP」で、通常「ja_JP」ですが、バリアントコード「JP」を加え「ja_JP_JP」としてCalendarクラスのgetInstance()メソッドを呼び出すと、JapaneseImperialCalendarインスタンスを作成でき、和暦の対応ができます。(参考サイト:Java 6で和暦を使う「Java SE 6完全攻略」第51回 和暦への対応 その1
  • 年数を昭和の下2けたで管理しているシステムの場合、2025年に「昭和100年」となり、桁あふれを起こす可能性があり、2025年問題(昭和100年問題)と呼ばれています。
  • 祝祭日は年代により変化が生じるので注意が必要です。例えば、1998年に「国民の祝日に関する法律の一部を改正する法律」(ハッピーマンデー制度)ができたり、2007年に「祝日と祝日に挟まれた日は国民の休日とする」と改正されたりしました。これら改正のコンボで2015年・2026年・2032年・2037年・2043年・2049年は、9月に「敬老の日」と「秋分の日」に挟まれる日が発生し、国民の休日が増える見込みです。 (参考サイト:国民の休日
  • 青空文庫の西暦(和暦)年の記述文学散歩意の年号(元号)一覧表で、西暦と和暦を対比して確認ができます。
  • Androidでは、getInstance()メソッドを呼び出したときGregorianCalenderインスタンスを作成しないロケールを設定していると、コンパイルエラーになる場合があるようです。(参考サイト:Android Debug certificate expired on xx/xx/xx xx:xx !

ISO8601とRFC3339に沿った日付と時刻の書き方

  •  ISO 8601は、日時表記の国際標準です。
  • 日付の表現は、「yyyy-MM-dd」とします。年・月・日の区切りは「/」ではなく「-」を使用し、年は2桁ではなく4桁で書きます。Javaでは年は「yyyy」、日は「dd」と小文字でよいですが、月は「MM」と大文字で記述します。小文字の「mm」は分をあらわすので注意します。
  • 時刻の表現は、「HH:mm:ss」とします。時・分・秒の区切りは「:」を使用し、時間は24時間であらわします。Javaでは「hh」と小文字にすると12時間での表示になるので、24時間での表示になる大文字の「HH」を用いる点に注意します。
  • 時差の表現は、「±hh:mm」とします。日時を現地時間で表記し、時・分でタイムゾーンオフセットをつけ、 UTCからhh時間mm分進んで(あるいは遅れて)いることを示します。UTCは「+00:00」(「-00:00」とは書きません)あるいは’Z’と書きます。時と分の間にコロン(:)が入ります。日本標準時を明示するなら時刻の後に「+09:00」を付与します。
  • 日付と時刻を連結する場合は、間にTを挟んで<日付>T<時刻>と書きます。
  • 日本標準時2012年7月1日午後3時10分30秒は「2012-07-01T15:10:30+09:00」と書きます。
  • Javaの標準APIでSimpleDateFormatの記法を用いて 「yyyy-MM-dd’T’HH:mm:ssZ」とした場合、「2012-07-01T15:10:30+0900」とタイムゾーンにコロン(:)が入らないRFC822の仕様の表示になります。org.apache.commons.langのFastDateFormatを使用して、「yyyy-MM-dd’T’HH:mm:ssZZ」と大文字2文字の’ZZ’とすることで、「2012-07-01T15:10:30+09:00」とタイムゾーンにコロン(:)が入る表示にすることができます。(参考サイト:JavaでのISO 8601形式の日時の処理
  • FastDateFormatの欠点は、解析(parse)に対応していないことと、和暦が使えないことです。(参考サイト:FastDateFormat
  • 「yyyy-MM-dd HH:mm:ssZ」形式で現在日時を出力するには、「System.out.println(new SimpleDateFormat(“yyyy-MM-dd HH:mm:ssZ”).format(new Date(System.currentTimeMillis())));」とします。
  • 日付文字列をタイムスタンプ型に変換したい場合は、「Timestamp ts = new Timestamp(new SimpleDateFormat(“yyyy/MM/dd HH:mm:ss.SSS”).parse(“2012/07/01 15:10:30.294″).getTime());」とすればできます。これを「System.out.println(ts);」で確認すると、「2012-07-01 15:10:30.294」と表示されます。
  • SimpleDateFormatの”S”はミリ秒なので、マイクロ秒と使い方を誤ると時間がずれます。例えば、「Timestamp ts = new Timestamp(new SimpleDateFormat(“yyyy/MM/dd HH:mm:ss.SSSSSS”).parse(“2011/02/04 06:14:16.483677″).getTime());」とし、「System.out.println(ts);」とすると、483,677マイクロ秒(8分3秒677ミリ秒)なので、「2011-02-04 06:22:19.677」と表示されます。(参考サイト:日付時刻フォーマットは小数にご注意 (お恥ずかしい話)
  • Androidではandroid.text.format.Time#parse3339() を使用すると高速にパースできます。(参考サイト:android.text.format.Timeの利用

ユリウス暦(Julian calendar)とグレゴリオ暦(Gregorian calendar)

  • グレゴリオ暦は『新暦』とも呼ばれ、16世紀以前には存在せず、 18世紀になるまでは普及していませんでした。 ユリウス暦(Julian calendar)に置き替って 世界的に受け入れられたのは20世紀初頭になってからです。 (参考サイト:暦と日誌 – 他の暦との相互変換
  • 1582年10月4日(木曜日)をユリウス暦最終日とし、その翌日は1582年10月15日(金曜日)としグレゴリオ暦初日とすることを、ローマ法王グレゴリオ13世が1582年2月24日に教書のかたちで布告しています。ローマ・カトリック系のイタリア、フランスなどは1582年からグレゴリオ暦を採用しましたが、イギリスでは1752年から採用しました。(参考サイト:ユリウス日(Julian Day)
  • ユリウス日(JD:Julian Day)とは、紀元前4713年1月1日12時0分0秒を0.0日とした連続した通し番号の日数で、天文通算日(Astronomical day number)とも呼びます。
  • 1582年10月4日はユリウス日の2299160日、1582年10月15日はユリウス日の2299161日です。(参考サイト:第17回「ユリウス通日」(その2)
  • 1年1月1日0時0分0秒はユリウス日の1721425.5日です。2000年1月1日0時0分0秒はユリウス日の2451544.5日です。(参考サイト:ユリウス日の計算
  • 準(修整)ユリウス日(MJD:Modified Julian Day)とは、ユリウス日から2400000日と半日(12時間)を引いたもので、1858年11月17日0時0分0秒を0.0日とした連続した通し番号の日数です。 2000年1月1日0時0分0秒は準ユリウス日の51544日です。(参考サイト:OpenVMS では計時開始日を 1858 年 11 月 17 日に設定していますが,その理由は何でしょう
  • Oracle日付(OraDates)は、ユリウス日で表されます。Oracle Applicationsは紀元前の日付をサポートしていません。(参考サイト:Oracle Applications開発者ガイド
  • 1582年から施行されたグレゴリオ暦の暦法を、1582年以前にも適用したものが先発グレゴリオ暦で、MySQL、SQLite、PHP、CIM、Delphi、COBOLでは先発グレゴリオ暦が用いられています。(参考サイト:先発グレゴリオ暦
  • java.util.Dateでは1582年以前の暦はユリウス暦とし、MySQLのDATEでは一律グレゴリオ暦としているので、西暦1000年2月29日の判定に違いがあります。(参考サイト:西暦1000年は閏年かそうじゃないのか?
  • UNIXで「man cal」とコマンドを入力し、オンライン・マニュアルを参照すると、「グレゴリオ暦への切り替えが1752年9月3日に行われた」となっています。「cal 9 1752」とコマンドを入力すると、1752年9月2日の次の日は1752年9月14日で表示されます。(参考サイト:calであそぶ
  • 英語では、西暦である事を明示するためには、AD(Anno domini(キリスト紀元))を年数の前に書き、紀元前はBC(Before Christ)を年数の後に書きます。(参考サイト:西暦
  • 3BC→2BC→1BC→AD1→AD2→AD3のようになっており、西暦0年(AD0・0BC))がないので、紀元前4713年(4713 BC)は、西暦-4712年(AD -4712)になります。(参考サイト:ミレニアムと2000年の違い
  • ユリウス暦では400年間にうるう年100回で1年は365.25日(31557600秒)、グレゴリオ暦では400年間にうるう年97回で1年は365.2425日(31556952秒)となります。
  • 太陽が春分点から春分点へ戻ってくる期間を「太陽年」と呼び、日数では365.24219日とされ、これは3,200年で約1,168,775日となります。グレゴリオ暦の365.2425日は3,200年で1,168,776日となるので約1日の差異があります。そこで、「年が4で割り切れるとうるう年だが100で割り切れるとうるう年ではない。しかし400で割り切れるとうるう年」という一般的なルールに加えて、「年が3,200で割り切れるとうるう年ではない。しかし80,000で割り切れるとうるう年」とするとより精密になるようです。(参考サイト:Leap Day

祝日

お役立ち

Excel上でUNIX Timeを日本時間の日時で表示する

  • Excel 内部の日時を示すシリアル値が1900年1月1日0時0分0秒を1として、1日ごとに1、1秒ごとに1/86400ずつ増える形式であることをふまえて計算式をたてます。
  • セルA1にUNIX Timeを置きます。
  • セルB1に「= A1/(60*60*24)+DATE(1970,1,1)+TIME(9,0,0)」(あるいは 「= A1/86400+25569+9/24」、「= A1/86400+25569.375」)と式を置きます。
  • セルC1に「=TEXT(B1,”yyyy/mm/dd hh:mm:ss”)」と式を置くと、セルC1に日本時間の日時で表示できます。
  • 別の方法として、セルB1で、セルの表示形式を「yyyy年m月d日 hh:mm:ss」と書式設定をユーザー定義すれば、日本時間の日時で表示できます。
  • あるいは、セルB1に「=TEXT(A1/86400+25569.375,”yyyy/mm/dd hh:mm:ss”)」とする方法もあります。
  • 逆に、A1にシリアル値がある場合、「=(A1-25569.375)*86400」とすれば、UNIX Timeにすることができます。

Android4.1:Jelly Bean (Java6 update33 + Android SDK r20 + Eclipse4.2 + Pleiades1.3.4 + ADT r20)をインストールしてみた

※2012年11月6日時点でのバージョンに一部記述を差し替えました。

2012年6月27日に、Android 4.1(Jelly Bean)の発表とEclipse 4.2(Eclipse Juno)が公開されたことと、Javaもバージョンアップしているので、Android開発環境を再インストールしました。(参考サイト:大幅リニューアルで気分一新! Eclipse 4.2 JunoリリースAndroid 4.1 Jelly Beanのすぐれ機能トップ5開発者が知らないと残念過ぎるAndroid 4.1の新機能36選意外と可愛い?Android4.1 JELLYBEANは絵文字もドロイド君!

※Android 4.1のソースコードの一般公開が、2012年7月10日に発表されました。

前回のAndroidアプリ開発環境を 42分で構築する(1時間切りに挑戦)同様、Pleiades All in Oneを利用してWindowsVista(32bit)へインストールしたかったのですが、Pleiades All in One 4.2.0(Eclipse 4.2.0 Juno )は64bit ベースとなってしまいました。(参考サイト:MergeDoc Project ブログ ) そこで、別の手順でAndroid開発環境構築をおこないました。

※って、2012年7月12日、「Pleiades All in One 4.2 32bi版」がPleiades All in One 4.2.0.v20120707 (Eclipse 4.2.0 Juno for Windows ベース)で存在し’ていました。現在は大丈夫です。orz
→ 気を取り直し、アンドロイドアプリ開発環境を Pleiades All in One 4.2で構築する (Android4.1:Jelly Bean) を記述しました。

システム情報を確認するには、「Windows」+「Pause」キーを押して「システム」画面を開きます。システムの種類が「32ビットオペレーティングシステム」となっていて、64bit ベースのPleiades All in One 4.2.0を起動しようとすると、「このファイルのバージョンは、現在の実行中のWindowsのバージョンとは互換性がありません。コンピュータのシステム情報を確認して、x86(32 ビット)またはx64(64 ビット)のどちらのバージョンのプログラムが必要であるかを確認してからソフトウェアの発行者に問い合わせてください。」とエラーになります。

インストールトラブルを避けるため、前回インストールしたEclipseのフォルダ丸ごと(ただし「workspace」フォルダは必要に応じ退避)と、「c:¥Users¥<user-name>¥.android」(<user-name>はユーザー名)フォルダ、「c:¥android-sdks」フォルダを削除し、一旦環境をまっさらにしました。ただし、Google Playにアプリを出したのであれば、通常は「.android」フォルダ内に本番用のkeystore(証明書)があります。紛失するとGoogle Playに出したアプリをアップデートできなくなるので退避します。(参考サイト:A_アプリのデジタル署名 

漢字を含んだユーザー名でインストールを進めると、AVD(仮想端末)作成のステップでエラーになり対応が必要となるので、漢字を含まないユーザー名で作業しました。

Vistaでは「Program Files」フォルダの更新は管理者権限が必要なので、Java以外はデフォルトのインストール先を変更します。(参考サイト:アプリケーションを管理者権限で実行する方法

ZIPファイルの解凍には、前回同様にWindows展開ウィザードを用います。Eclipse起動時エラーの傾向と対策で記したように、7-Zip、Lhaplus、Lhacaなどの解凍ツールではパス名が260文字を超えている場合に適切に処理できず解凍に失敗するためです。

なお、私と手順が近くて図解入りのページがあったので、参考になるようリンクを置きます。(参考サイト:Android 4.0でアプリ開発を始めるための環境構築

0.はじめに

Javaは、前回はJREあり版のPleiades All in Oneを利用したので別途インストールしませんでしたが、今回はインストールが必要になります。Javaのバージョンは、Androidアプリ開発システム要件でJDK6となっているので、Java7u5 Java7u9ではなくJava6 update33 Java6 update37を利用します。既にJava7をインストール済みであっても、あらためてJava6をインストールできます。

Android SDKは、インストーラ版とzip版があります。「Download The SDK for Windows」をクリックしてダウンロードされるのは、インストーラ版のinstaller_r20-windows.exeinstaller_r20.0.3-windows.exe」です。zip版の「android-sdk_r20.0.3-windows.zip」、Mac OS X (intel)版の「android-sdk_r20.0.3-macosx.zip」、Linux (i386)版の「android-sdk_r20.0.3-linux.tgz」は、「Download The SDK for Windows」左下の「Other platforms」をクリック すると現れます。インストーラ版の方がスタートメニューに「Android SDK Tools」メニューが登録され便利だと思い、インストーラ版を選択しました。

Eclipseは、もっとも軽量なEclipse Clasic 4.2 Eclipse Clasic 4.2.1を選択しました。これをベースに必要なプラグインをインストールしたほうが、Android開発で使わないプラグインも含んでいるEclipse IDE for Java DevelopersEclipse IDE for Java EE Developersをベースにするよりも依存関係の計算も少なくて起動が早くなると考えました。

Pleiadesは、前回はPleiades All in Oneで日本語化済みのEclipseをすぐに利用できましたが、今回は自力日本語化となるため、プラグイン単体Pleiades1.3.4(安定版) Pleiades1.3.5(最新版) を用意します。

※Pleiadesプラグインは、2012年7月12日に見たところバージョン1.3.5が登場していたので記述を差し替えました。

ADTは、前回はEclipseメニューの「ヘルプ」→「新規ソフトウエアのインストール」→「追加」→「リポジトリーの追加」で「ロケーション」欄に「https://dl-ssl.google.com/android/eclipse/」を設定としましたが、今回は、あらかじめADT-20.0.0.zipADT-20.0.3.zip」ファイルをダウンロードしておき、アーカイブを指定する方法にしました。解凍しておく必要はありません。このプラグインをEclipseにインストールしないと、新規プロジェクトを選択しても「Androidプロジェクトが無い~っ!」ってことになります。なお以前の本などでは「Androidプロジェクト」となっていますが、「Android Application Project」に変わっているので読み替える必要があります。表示がない場合はパースペクティブが「リソース」になっているかもしれません。パースペクティブを「Java」に変えてみてください。(参考サイト:最初のAndroidアプリ プロジェクトの作成

1.ファイルダウンロード

Windows64bit用のJDKとEclipseが32bit用と別にあるので、64bit版希望の時は32bit(Windows x86)用の「jdk-6u37-windows-i586.exe」と「eclipse-SDK-4.2.1-win32.zip」ではなく、64bit(Windows x64)用の「jdk-6u37-windows-x64.exe」と「eclipse-SDK-4.2.1-win32-x86_64.zip」をダウンロードして、説明を読み替えてください。Windows64bit上でJDK32bit+Eclipse32bitも動作しますが、JDK32bit+Eclipse64bitやJDK64bit+Eclipse32bitの組み合わせでは動作せず、 「Failed to load the JNI shared library」とエラーが出ます。

2.JDK(Java SE Development Kit:Java開発キット)インストール

  • ダウンロード済みの「jdk-6u37-windows-i586.exe」をダブルクリックします。
  • 「ユーザーアカウント制御」画面が開き、プログラムを続行する許可を求められるので、「続行」をクリックします。
  • 「Java(TM)SE Development Kit 6 Update 37 - セットアップ」画面が開くので、「次へ」をクリックします。
  • 「カスタムセットアップ」画面になるので、デフォルトのまま「次へ」をクリックします。
  • 「進捗」画面になり、「Javaセットアップ - インストール先フォルダ」画面になるので、、デフォルトのまま「次へ」をクリックします。
  • 「Javaセットアップ - 進捗」画面になり、「公開JRE」のインストールが完了すると「Javaセットアップ」画面が閉じます。
  • 「Java(TM)SE Development Kit 6 Update 37 - 完了」画面になったら「完了」をクリックします。
  • ブラウザが起動し「Java Development Kit (JDK) Registration」画面が開きますが、登録しなくてもJavaは使用できるので、ブラウザ画面を閉じます。
  • 「Windows」+「Pause」キーを押して「システム」画面を開き、「システム詳細設定」をクリックし、システムのプロパティを開き、詳細設定タブの「環境変数」をクリックします。
  • システム環境変数「JAVA_HOME」に「C:\Program Files\Java\jdk1.6.0_37」を設定し、「Path」の最初に「%JAVA_HOME%\bin;」を記述します。(コマンドプロンプト利用のAndroidアプリ開発環境を構築するを参考)
  • 「Windows」+「R」キーを押して「ファイル名を指定して実行」画面を開き、名前欄に「cmd」と入力し、「OK」をクリックし、「コマンドプロンプト」画面を開き、「java -version」と入力すると、「java version “1.6.0_37″」と表示され、「javac -version」と入力すると、「javac 1.6.0_37」と表示されれば、パスの設定がうまくできていますが、「1.7.0_09」などと表示される場合は「path」と入力して意図した設定になっているかを確認します。

※複数のバージョンのJavaがインストールされていて、どれもシステム環境変数「Path」に設定されている場合は、最も左側にパスを記述したJavaが優先して使用されます。(参考サイト:Java SE 6 Release Notes

※システム環境変数「Path」の設定をしないで「コマンドプロンプト」画面を開き、「java -version」と入力しても、Javaのバージョンは表示されます。「公開JRE」をインストールすると既にパスが通っている「Windows\system32」フォルダにも「java.exe」がコピーされるからです。「javac.exe」は「Windows\system32」フォルダへコピーされないので「javac -version」と入力すると「‘javac‘は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」とエラーになります。

※Java7とJava6の両方をインストールした場合、「Windows\system32」フォルダの「java.exe」は、後からJava6を入れてもJava7になります。

※システム環境変数を設定すると、他のJavaアプリも「JAVA_HOME」に設定したJavaを利用するようになります。システム環境変数を設定しなくても「Windows\system32」フォルダの「公開JRE」を利用してEclipseは起動できます。この場合のEclipse起動JREがJava7など他のJavaであっても、後述の「インストール済みのJRE」に「C:\Program Files\Java\jdk1.6.0_37」を設定すれば、コンパイルには「インストール済みのJRE」に設定したJava6が使用されます。あるいは、Eclipse起動に明示的に指定したいJREがあるなら、Eclipse起動時エラーの傾向と対策で示した「-vm」オプションで設定します。

※Eclipse起動にどのJREが使用されたかは、Eclipse起動後に、Eclipseメニューの「ヘルプ」→「Eclipse SDKについて」→「インストール詳細」→「構成」タブをクリックして、起動ログの28行目位にある「-vm」の記述の次の行を見ることで確認できます。

3.Android SDK(Software Development Kit:ソフトウエア開発キット)インストール

  • ダウンロード済みの「installer_r20.0.3-windows.exe」をダブルクリックします。
  • 「Android SDK Tools Setup」画面が開いたら「Next」をクリックします。
  • どの場所にあるJavaを認識したかが表示されたら「Next」をクリックします。(JDKインストールの手順を飛ばすなどしてJavaを認識できない場合は、Javaのインストールを促す「Visit.java.oracle.com」のボタンが表示されるので、Android SDKのインストールを開始できません)
  • Choose Usersで、「Install for anyone using this computer」=このコンピューターを利用する全てのユーザーが利用できるようにインストールにするか、「Install just for me」=今ログイン中の自分だけが利用できるようにインストールにするか、を選ぶ画面になります。自分自身しか使っていないパソコンならどちらでも良いと思うのですが、デフォルトの「Install just for me」をチェックのまま「Next」をクリックします。
  • Choose Install Locationで、Destination Folderとして「C:\Users\<user-name>\AppData\Local\Android\android-sdk」(<user-name>はユーザー名)が示されるので、「AppData」は標準では隠しフォルダのため「C:\android-sdk」(任意)に変更して「Next」をクリックします。
  • Choose Start Menu Folderで、デフォルトの「Android SDK Tools」のまま「Install」をクリックします。
  • Installation Completeで「Next」をクリックします。
  • 「Start SDK Manager(to download system images,etc.)」をチェックしたまま「Finish」をクリックします。
  • 「Android SDK Manager」画面が開き、デフォルトで「Android4.1(API 16)」6ファイル 「Android4.1.2(API 16)」8ファイルと、「Google USB Driver」の計7ファイル計9ファイルが選択されているので、そのまま「Install 7 packages…」「Install 9 packages…」をクリックします。(デフォルトの画面幅ではボタンの文字が全部見えないかもしれません。その場合、枠をつまんで横幅を拡大すればしっかり確認できます。)
  • 「Choose Packages to Install」画面が開くので、「Accept all」をチェックし、「Install」をクリックします。
  • 「Android SDK Manager Log」画面がポップアップし、「Stopping ADB server failed (code -1).」と表示されますが、実際にこの段階ではADBサーバーは稼動していないので、エラー表示を無視します。
  • 「Done loading packages.」と表示されたら「Close」をクリックして「Android SDK Manager Log」画面を閉じます。
  • 「Android SDK Tools」、「Android SDK Platform-tools」(2012年11月6日記述削除)、Android4.1(API 16)の「Documentation for Android SDK」・「SDK Platform」、「Samples for SDK」・「ARM EABI v7a System Image」・「Intel x86 Atom System Image」(2012年11月6日記述追加)・「Mips System Image」(2012年11月6日記述追加)・「Google APIs」・「Sources for Android SDK」、「Google USB Driver」の 計9ヶ所 計10ヶ所が「Installed」の表示になっているはずです。右肩の「X」をクリックして画面を閉じます。

※隠しフォルダの「AppData」フォルダを見れるようにするには、デスクトップ画面左下「スタート」アイコンを右クリックし、「エクスプローラ」をクリック→Vistaは標準ではメニューバーが表示されないので、「Alt」キーを押し、メニューバーの「ツール」をクリックして「フォルダオプション」(または、「整理」→「フォルダと検索のオプション」)をクリック→「表示」タブをクリックし、「隠しファイルおよび隠しフォルダを表示しない」のチェックを「すべてのファイルとフォルダを表示する」のチェックに変えて、「OK」ボタンをクリックします。

※Choose Usersで「Install for anyone using this computer」の方を選んだ場合、Choose Install Locationで、Destination Folderとして「C:\Program Files\Android\android-sdk」が示されます。最初に示したように、「Program Files」フォルダは管理者権限で実行しないとEclipseでプラグインを更新する時にエラーが起こることがあります。(参考サイト:アプリケーションを管理者権限で実行する方法) これを嫌うなら、Destination Folderを「C:\android-sdk」のように変更することをお勧めします。

※「Ctrl」+「Shift」+「Esc」キーを押して「Windowsタスクマネージャ」画面を開いて「プロセス」タブをクリックすると、「adb.exe」(ADBサーバー)の実行状態を確認することができ、Android SDKインストール直後は実行中(プロセスが存在する)になります。

※コマンドラインを利用するなら、システム環境変数「Path」の最後に「;C:\android-sdk\tools;C:\android-sdk\platform-tools」を記述して、パスを通します。(コマンドプロンプト利用のAndroidアプリ開発環境を構築するを参考)

4.Eclipse IDE (Integrated Development Environment:統合開発環境)インストール

  • ダウンロード済みの「eclipse-SDK-4.2.1-win32.zip」を右クリックして、「すべて展開…」を選択します。
  • 展開先を「C:\eclipse42」とし(任意)、「展開」をクリックします。
  • 展開したフォルダが開いたら「eclipse」フォルダをダブルクリックします。
  • eclipse.exeを右クリックし、「送る」→「デスクトップ(ショートカットを作成)」をクリックします。
  • デスクトップに作成された「eclipse.exe – ショートカット」を右クリック→「プロパティ」をクリックし、「ショートカット」タブのリンク先欄の記述の「C:\eclipse42\eclipse\eclipse.exe」に空白をあけて「-clean」を追記し、「C:\eclipse42\eclipse\eclipse.exe -clean」とします。「全般」タブをクリックし、「Eclipseクリーン起動」などのようにショートカット名を変更します。(同様に-cleanなしのショートカットも作成し、プラグインを更新したときは「-clean」つきの方を、そうでない場合は「-clean」なしの方で起動するように使い分けます)
  • ここではショートカット作成までにとどめ、起動はpleiades (Eclipse日本語化プラグイン)をインストールしてからにします。

5.pleiades (Eclipse日本語化プラグイン)インストール

  • ダウンロード済みの「pleiades.zip」を右クリックして、「すべて展開…」を選択します。
  • デフォルトのまま、「展開」をクリックします。
  • 展開したフォルダが開いたら「readme」フォルダの「readme_pleiades.txt」ファイルを開き適用方法を確認します。
  • 適用方法に従い、「features」フォルダと「plugins」フォルダを「C:\eclipse42\eclipse」フォルダへコピーします。展開したフォルダ内で「Ctrl」キーを押しながら「features」フォルダと「plugins」フォルダをクリックして選択したら「Ctrl」+「c」キーでコピー対象とし、「C:\eclipse42\eclipse」フォルダで「Ctrl」+「v」 キーを押して貼り付けます。
  • コピーしようとすると、「フォルダの上書きの確認」画面が開き、「この宛先には既に’plugins’フォルダが存在します。」と表示され、「このフォルダpluginsに次のフォルダを統合しますか?」と問われるので、「同じ処理を現在の項目すべてに適用」をチェックして、「はい」をクリックします。これで、元から「C:\eclipse42\eclipse」フォルダ内にあったものはそのまま残して、追加されるものだけ追加します。ただし、Macの方は「features」フォルダと「plugins」フォルダをコピーすると、本来あるものが消えてしまうとのことなので参考サイトに従ってください。(参考サイト:MacでPleiades All in One Eclipse
  • 続いて「C:\eclipse42\eclipse」フォルダの「eclipse.ini」ファイルを編集します。メモ帳で編集しようと開くと改行されずに表示されるので、「eclipse.ini」ファイルを右クリックし、「プログラムから開く」→「ワードパッド」をクリックし、ワードパッドで編集します。記述済みの最後尾「-vmargs」「-Xms40m」「-Xmx512m」の後に「-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar」を追加して上書き保存します。(メモ帳は、Eclipseを一度も起動せずに「eclipse.ini」ファイルを開くと一続きで表示されますが、その場合でも最後尾に追加して、Eclipseを一度でも起動してから確認すれば改行して表示されます。メモ帳が編集に使用できないわけではありません。ワードパッドやサクラエディタなどを使用すれば、最初のときから「-vmargs」「-Xms40m」「-Xmx512m」の各行で改行して表示されます。)
  • 「readme_pleiades.txt」ファイルにかかれているように、「eclipse.ini」ファイル中の「-showsplash」「org.eclipse.platform」の記述を削除すると、起動スプラッシュ画像が、標準の「C:\eclipse42\eclipse\plugins\org.eclipse.platform_4.2.0.v201206081400\splash.bmp」から、Pleiadesの「C:\eclipse42\eclipse\plugins\jp.sourceforge.mergedoc.pleiades\conf\splash.bmp」に差し替えになります。
  • 変更が終わったら、保存して画面を閉じます。

※Pleiades4.2の文字入り起動スプラッシュ画像にしたい場合は、「splash.bmp」を、64bit版Pleiades All in One 4.2.0のZIPファイル内の「eclipse¥dropins¥MergeDoc¥eclipse¥splash.bmp」と差し替えます。

※「Eclipse splash」を画像サイズ455×295で画像検索してみたら、起動スプラッシュ画像を好きに差し替えて楽しんでいる方は結構いるようです。(Eclipse — Splash screens throughout the yearsを見るとEclipse4.0からスプラッシュ画像サイズは452×302になったみたいですが…)

6.ADT(Android Development Tools:アンドロイド開発ツール群)プラグイン インストール

  • デスクトップに作成したEclipseの起動ショートカットをダブルクリックします。(-cleanつきの方)
  • 「発行元を確認できませんでした。このソフトウエアを実行しますか?」と問われるので、「この種類のファイルであれば常に警告する」のチェックをはずし「実行」をクリックします。
  • ワークスペース・ランチャー画面が開いたら、「この選択をデフォルトとして使用し、今後この質問を表示しない」にチェックをし、「OK」をクリックします。
  • Eclipseメニューの「ヘルプ」→「新規ソフトウエアのインストール」をクリックします。
  • 「インストール」画面が開いたら、「追加」をクリックします。
  • 「リポジトリーの追加」画面が開いたら、名前欄に「Android Plugin」(任意)と入力し、「アーカイブ」をクリックし、リポジトリー・アーカイブ画面のファイル選択で、ダウンロード済みの「ADT-20.0.3.zip」をダブルクリックして選択します。(または、前回のように「ロケーション」欄に「https://dl-ssl.google.com/android/eclipse/」と入力する方法でもよいです。)
  • 「リポジトリーの追加」画面に戻るので、「OK」をクリックします。
  • 「インストール」画面が開いたら、「すべて選択」をクリックし、「次へ」をクリックします。
  • 「インストール詳細画面」画面が開いたら、「次へ」をクリックします。
  • 「ライセンスのレビュー画面」画面が開いたら、「使用条件の条項に同意します」にチェックをし、「完了」をクリックします。
  • 1、2分ほどたって画面最下行の「ソフトウエアのインストール中」の表示が50%を越えた頃に「セキュリティ警告」画面が開き「警告:署名なしコンテンツを含むソフトウエアをインストールしています。このソフトウエアの真正性または妥当性を実証できません。インストールを続行しますか?」と問われたら、「OK」をクリックします。(「ソフトウエアのインストール中」の表示は解像度が低いモードでは表示領域が確保されない場合があります)
  • 「Windowsセキュリティの重要な警告」画面が開き、受信ネットワーク接続のブロックが表示されたら、「ブロックを解除する」をクリックします。「ユーザーアカウント制御」画面が開いたら「続行」をクリックします。
  • 「ソフトウエア更新」画面が開いたら、「今すぐ再起動」をクリックします。

7.Eclipseの設定

  • 「ようこそ」タブはタブの右の「X」をクリックして閉じ、Eclipseメニューの「ウィンドウ」→「設定」を選択し、Eclipseをチューニング 設定方法により変更と確認をします。
  • Androidの標準文字コードはUTF-8なので、右ペインの「一般」→「ワークスペース」を選択し、左ペインの「テキスト・ファイル・エンコード」の設定が「MS932(デフォルト)」となっているところを、「その他」をチェックして「UTF-8」に変更します。
  • TAB設定、行番号表示、空白改行表示、円記号をバックスラッシュでなく表示などを好みで設定します。
  • Androidアプリ開発システム要件に沿うよう「インストール済みのJRE」が「JDK1.6.0_33」(JDK6)、「コンパイラー準拠レベル」が「1.6」(JDK6)であることを確認します。仮に「コンパイラー準拠レベル」が「1.5」の場合@Overrideでアノテーションエラーが発生します。
  • 変更と確認が終わったら「OK」をクリックします。

※Eclipse初回起動時に使用したJREは、「インストール済みのJRE」に自動認識されるようです。

8.AVD(Android Virtual Device:Android仮想端末) Managerでエミュレータを作成

以上です。

※JDK→Eclipse→Pleiades→ADTの順でインストールすると、Eclipse起動時に「Could not find SDK folder ‘<フォルダ名>’.」と出て、「Open Preferences」「閉じる」を選択する画面になることがあります。「Open Preferences」をクリックするとEclipseの設定画面が開き、SDKロケーションの上に「値は既存のディレクトリーでなければなりません」と表示が出るので、もし以前の有効なAndroid SDKがあるのであれば、そのフォルダを入力します。(なければ「キャンセル」をクリック) あるいは「閉じる」をクリックし、新規にAndroid SDKをインストールして、インストールフォルダをさっきの<フォルダ名>で設定するか、またはAndroid SDKを任意のフォルダにインストールして、Eclipseの設定画面のSDKロケーションにそのフォルダを設定します。

※新規のEclipseではなく、Android導入済みのEclipseはAndroid SDKをアップデートすると、Eclipseの動作が変化します。Eclipseメニューの「ウィンドウ」→「設定」を選択し、右ペインの「Android」をクリックしてみても、「This Android SDK requires Android Developer Toolkit version 20.0.0 or above. Current version is XX.X.X.vXXXXXXXXXXXX-XXXXXX. Please update ADT to the latest version.」とエラーが表示されるようになります。Eclipseメニューの「ヘルプ」→「新規ソフトウエアのインストール」→「作業対象」にADTプラグインのレポジトリ(https://dl-ssl.google.com/android/eclipse/)をセット→「すべて選択」をして、ADTもアップデートする必要があります。すなわち、既存のAndroid導入済みのEclipseでAndroid4.1を導入するには

  1. Android SDK Managerを起動し、「Android SDK Tools」と「Android SDK Platform Tools」をチェックし、「Android SDK Tools」をリビジョン20に、「Android SDK Platform Tools」をリビジョン12にアップデートし、一度閉じます。
  2. ADTをアップデートします。
  3. 再びAndroid SDK Managerを起動し、Android4.1(API 16)が選択可能になっているので、チェックしインストールします。

※エラーが出る場合はAndroidエラーの傾向と対策を参考にして下さい。

2012/08/16追記
『作りながら覚えるAndroidプログラミング 改訂版』-Android SDK 4.1(Jelly Bean)への対応と修正点についても参考にするといいでしょう。

Eclipse起動時エラーの傾向と対策

Eclipseが起動しない場合、Eclipseの実行結果は、ワークスペースフォルダ内の「.metadata」フォルダ(当方の場合なら「C:\pleiades\workspace\.metadata」フォルダ)内の「.log」ファイルか、Eclipseインストールフォルダ内の「/configuration/(起動時のエポック秒).log」ファイルに記録されます。エディタで開いて確認すれば、Eclipseが起動できない原因を探ることができます。

エポック秒(EpochTime:エポックタイム)は、「ピ!ピ!ピ!ポーン!ポーン!」  うるう秒がらみで日付表示を調べてみるで記述したように、1970年1月1日0時0分0秒からの経過秒数なので、後に起動したほうが数値が大きくなります。

「eclipse.ini」ファイル(当方の場合なら「C:\pleiades\eclipse\eclipse.ini」)を編集したりプラグインを追加したりした結果起動しなくなってしまった場合などは、コマンドプロンプトからEclipseを起動して、何かエラーが表示されないか確認してみます。エクスプローラで「eclipse.exe」の存在するフォルダ(当方の場合なら「C:\pleiades\eclipse」)を開き、右ペインのファイル一覧の空白領域で「Shift」キーを押しながら右クリック(または一つ上の「C:\pleiades」フォルダをダブルクリック→「eclipse」フォルダを「Shift」キーを押しながら右クリック)すると現れる「コマンドウィンドウをここで開く」をクリックして”コマンドプロンプト”画面を開き、「eclipsec」とコマンドを入力します。(参考サイト:追加ソフトなしで 『コマンド ウィンドウをここで開く』のやり方

「eclipsec.exe」はEclipseをコンソールから起動するための実行ファイルで、「.exe」の記述は省略できます。注意点として、起動コマンドを入力した”コマンドプロンプト”画面を閉じるとEclipseも終了します。(参考サイト:Eclipseのエラーログの確認方法Eclipseの導入(Windows XP)

「eclipsec -console」とした後、「osgi>」プロンプトに「ss」と入力すると、Eclipse上で動いているプラグインの稼動状況の一覧を見ることができます。(参考サイト:OSGi仕様が実装されたEquinoxを試す!

「eclipsec -debug -consoleLog」とするとeclipseのログを見ることができます。(参考サイト:eclipseのログを見る方法メモ

Q. 「An error has occured. See the log file (XXXX)/eclipse:/configuration/(起動時のエポック秒).log」(エラーが発生しました。ログファイル「(起動時のエポック秒).log」を見てください。)とエラーメッセージが表示され、ログファイルの内容が「!MESSAGE Exception launching the Eclipse Platform:!STACK java.lang.RuntimeException: Could not find framework」(Eclipseプラットフォーム起動時に例外が発生しました:Java実行時に例外が発生しました:フレームワークを見つけることができませんでした。)となっている。
A. Eclpse解凍先のパス名が長すぎて、解凍に失敗した可能性があります。ファイルやフォルダ名の長さ、パス全体の長さに制限があります。Windows上でzipを解凍するときの注意に従って、解凍先のパス名を短くしたり、解凍ツールをかえたりしてみます。それから再度起動を試してみます。または、正常に解凍できても、解凍後にフォルダを移動していれば、その結果パス名が制限を超えてしまった可能性があります。(参考サイト:ファイル名の長さと文字コードの問題ファイル名とファイル名拡張子 : よく寄せられる質問 – ファイル名の最大長はいくつですかファイルパスが255文字を超えるファイルはFastCopyや7-Zipで操作しよう 特集その3UNIXのファイル名の限度文字数は何バイトでしょうか?

※zipファイルの特定の解凍ツールへの関連付けを解除し、Windows展開ウィザードを機能させるには、コマンドプロンプトを管理者権限で起動し、「assoc .zip=CompressedFolder」と入力します。コマンドプロンプトを管理者権限で起動するには、画面左下のWindowsスタートアップアイコンをクリックし、”検索の開始”欄に「cmd」と入力し、表示された「cmd.exe」を右クリックし「管理者として実行」をクリックします。(参考サイト:ZIP ファイルの関連付けの設定を初期化したい) 私のVista環境では、レジストリ操作をせず、「assoc .zip=CompressedFolder」コマンドの実行だけで関連付けをリセットできました。また、別の方法もあります。(参考サイト:zipファイルの関連付けが壊れた場合の直し方

Windows上でzipを解凍するときの注意に書かれていること(抜粋)

  • 解凍ツールは Windows 7 展開ウィザードまたは WinRAR を推奨します。 この 2 つのツールは解凍時に MAX_PATH (最大パスを示す Windows 定数 = 260 文字) を超えていた場合、適切なエラーを返します。その場合は c:¥user (c:¥user¥eclipse に展開) のような短いパスに解凍してください。Windows XP 展開ウィザード、Lhaz、Explzh は MAX_PATH を超えている場合、書庫が壊れているかのようなエラーが出ますが、これも短いパスに解凍することで対応可能です。 7-Zip、Lhaplus、Lhaca は使用しないでください。MAX_PATH を超えていても警告やエラーが表示されず、正常に解凍できたか判断できません。

Q. Eclipseを更新し、再起動をしたところ、「An error has occured. See the log file (XXXX)/eclipse:/configuration/(起動時のエポック秒).log」(エラーが発生しました。ログファイル「(起動時のエポック秒).log」を見てください。)とエラーメッセージが表示された
A.
 ”コマンドプロンプト”画面で「eclipse.exe」のある階層へ移動してから「eclipse -clean」と入力してキャッシュをクリアしての起動を試してみます。改善しない場合は、「eclipse.ini」ファイルにJVM(Java Virtual Machine:Java仮想マシン)のパスを記述してみます。(参考サイト:Eclipseを更新後、エラーでEclipseが起動できなくなってしまった場合

Q.起動スプラッシュ画面が一瞬だけ表示され、Eclipseが起動しないで終了してしまう。
A. ”コマンドプロンプト”画面で「eclipse.exe」のある階層へ移動してから「eclipse -clean」と入力してキャッシュをクリアしての起動を試してみます。Eclipseを日本語化している場合は、「eclipse.ini」ファイルの「javaagent」の行を削除してみます。これで起動する場合は、日本語化パックのファイル配置が、「javaagent」に示したパスと矛盾しています。相対パスではなく、絶対パス(フルパス)で指定すると成功することもあります。(参考サイト:Eclipseを更新したら起動しない…ので。Eclipseが不安定になったり起動できなくなる問題についてEclipseが起動してくれなかった原因Eclipseの日本語化os x mountain lion (10.8) に Eclipse Juno 4.2 をインストールする方法

Q. 「The Eclipse executable launcher was unable to locate its companion shared library.」(Eclipseの実行ランチャーは、共有ライブラリを見つけることができませんでした。)エラーメッセージが表示された。
A.実行に必要なファイルがみつからないという意味のエラーです。

はじめてEclipseを起動しようとして表示される場合は、Eclipseの解凍に失敗した可能性があります。解凍先フォルダ名が長すぎると解凍に失敗するのですが、解凍ツールの中には、この失敗を検出しないものがあります。フォルダ名が長い例として、「マイドキュメント」フォルダや「ダウンロード」フォルダにダウンロードし、そのまま解凍すると失敗します。「C:\」直下などの短い解凍先フォルダ名で解凍します。解凍ツールを変えてみるのもいいでしょう。Windows標準のWindows展開ウィザードは解凍失敗を検出してくれます。(参考サイト:The Eclipse executable launcher was unable to locate its companion shared libraryEclipse( Pleiades ) Helios + VisualEditor

Eclipseを日本語化して表示される場合は、「Eclipse.ini」ファイルに書き加えた「javaagent」の行の記述設定を間違えた可能性があります。(一応「Eclipse.ini」ファイルをバックアップして)一旦「javaagent」の行を削除して、英語表記で動くことが確認できれば、設定ミスです。日本語化関係ファイルの配置場所を直下の「plugins」フォルダと「feature」フォルダにしている場合は、「dropins」フォルダ内に設定して「javaagent」行の相対パスの記述を修正します。あるいは、絶対パス(フルパス)での記述に変えてみます。(参考サイト:Eclipse 4.2 Juno Windows 32bit 日本語化手順Mac OS 10.6(Snow Leopard)での開発環境の構築MacのEclipse をPleiadesで日本語化するUbuntu – EclipseとAndroid開発環境構築Linux で Eclipse 4.2 のダウンロード,インストール,設定,日本語化,基本操作Debianにeclipseをインストール&日本語化する方法、ubuntu8.10にeclipse3.4+PDT+Aptanaを入れてみました

以前は動いていたものが急に動かなくなった場合は、「Eclipse.ini」ファイルが書き変わった可能性があります。(参考サイト:The Eclipse executable launcher was unable to locate its companion shared library というエラーメッセージ

Q.新しいプラグインをインストールしたら起動しなくなった。例えば、 「Javaツールを初期化中」(Initializing Java Tooling)のままフリーズする。(固まって応答なしになった。) あるいは、ログファイルの内容が「MESSAGE FrameworkEvent ERROR !STACK 0 org.osgi.framework.BundleException: バンドル org.eclipse.equinox.simpleconfigurator のアクティベーター org.eclipse.equinox.internal.simpleconfigurator.Activator が無効です」となっている。
A. SourceForge.JPのFAQの「Q. 起動しない / 起動しなくなった / 強制終了させたらおかしくなった」(http://sourceforge.jp/projects/mergedoc/releases/38225/note)を参考に、キャッシュをクリアする起動オプション「-clean」を試します。「eclipse -clean」で起動してみます。あるいは、「C:\pleiades\eclipse\configuration\jp.sourceforge.mergedoc.pleiades」フォルダを削除してからの起動を試します。

Q.Eclipseを更新して起動したら 「Unable to execute early startup code for an extension」「プラグイン”org.eclipse.ui.workbench”からコードの起動で問題が発生しました。」とメッセージが表示された。
A. Eclipseメニューの「Window」→「パースペクティブのリセット」をクリックします。(参考サイト:Eclipse更新で起動エラー、パースペクティブのリセットで解決。

Q. 「Loading Workbench」(ワークベンチをロード中)のままフリーズし、ログファイルの内容が「!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.」(ワークスペースは、変更を保存せずに前回のセッションを終了しました。変更を回復するためにはワークスペースをリフレッシュします。)となっている。
A. 一時ファイル「.snap」が壊れています。まず、”コマンドプロンプト”画面で「eclipse.exe」のある階層へ移動してから「eclipse -clean」と入力してキャッシュをクリアしての起動を試してみます。これで回復しない場合、ワークスペース内の「/.metadata/.plugins/org.eclipse.core.resources」フォルダ配下(子、孫まですべて)の拡張子「.snap」ファイルを削除しての起動を試してみます。(「/.metadata/.plugins/org.eclipse.core.resources/.snap」「/.metadata/.plugins/org.eclipse.core.resources/.projects/.markers.snap」「/.metadata/.plugins/org.eclipse.core.resources/.projects/.syncinfo.snap」の類)(参考サイト:Eclipseが起動しなくなったときの対応の要点だけEclipseメモFDT (Eclipse) が起動しなくなったら .snap を消すEclipseが起動しないとき用のバッチ

Q. Elipseのプロジェクトが開かない。起動後、フリーズしてしまった。
A.
 ワークスベンチのレイアウト情報を削除してみます。「workspace/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml」を削除することで、ワークスベンチのレイアウトが初期状態で起動します。(参考サイト:workspaceが死んだ日Eclipse壊れたときの対応 MacEclipseで間違えて閉じたウィンドウを復元したときのメモ

Q. どうしてもElipseが起動しない。
A.
 「.metadata」フォルダを丸ごと削除して起動してみます。各種の設定情報は初期化されます。

Q. 「A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No Java virtual machine was found after following locations:  %ECLIPSE_HOME%\jre\bin\javaw.exe javaw.exe in your current PATH」(Eclipse を実行するためには、Java実行環境(JRE)かJava開発キット(JDK)が必要です。 次の場所にはJava仮想マシンはみつかりませんでした。 Eclipseインストールフォルダのjre\bin\javaw.exe あなたの現在の環境変数「PATH」で設定したフォルダのjavaw.exe)とエラーメッセージが表示された。
A. Eclipseインストールフォルダ配下の「jre」フォルダ(当方の場合なら「C:\pleiades\eclipse\jre」)に存在するJREが最優先でEclipseの起動JREになるので、まずこれを探しています。次に環境変数「PATH」に指定されたフォルダにJREがないかを探しています。JREが存在するのにこのエラーがでるのであれば、環境変数「PATH」の記述を見直す必要があります。コマンドプロンプト利用のAndroidアプリ開発環境を構築するを参考にして下さい。あるいは、「eclipse.ini」ファイルに「-vm」オプションで、起動に使用するJVMを明示指定します。

もし、「after following locations:」以下が別のPathで出ている場合、すでに「eclipse.ini」ファイルに「-vm」オプションで、起動に使用するJVMを明示指定している可能性があります。その場所に「javaw.exe」ファイルが無いためにエラーになっています。(参考サイト:Eclipse を起動しようとすると 「JRE が見つからない」 と怒られてしまう問題

あるいはJREが64bitでEclipseが32bitかもしれません。(参考サイト:Eclipse 32bit は、JDK(JRE) 64bit では動作しない?

「eclipse.ini」ファイルを修正して記述を誤るとこのエラーになることもあります。修正前の「eclipse.ini」ファイルに戻して起動しないかを試してみます。

※インストール済みのJRE(JVM)がないパソコンで、JREなし版のEclipseを起動しようとしている場合は、JREかJDK(内部にJREを含んでいます)をインストールする必要があります。JREはJavaのダウンロードから、JDKはJava SE Downloadsから入手できます。

Q. 「An error has occured. See the log file (XXXX)/eclipse:/configuration/(起動時のエポック秒).log」とエラーメッセージが表示され、ログファイルの内容3行目が「java.version=1.4.X」となっている。
A.
Eclipse起動に利用したJavaのバージョンが1.4だったことになり、Javaのバージョンが古くてEclipseの起動に適していません。適したバージョンのJavaを、環境変数「Path」に記述するか、「eclipse.ini」ファイルに「-vm」オプションで、起動に使用するJVMを明示指定します。

Q. 「Failed to load the JNI shared library」(JNIの共有ライブラリのロードに失敗しました。)とエラーメッセージが表示された。
A.
64bit版Eclipseを、32bit版JREで起動しようとしています。環境変数「Path」の記述を見直すか、「eclipse.ini」ファイルに「-vm」オプションで、起動に使用するJVMを明示指定します。(参考サイト:Eclipse起動時にjvm.dllのエラーが発生した場合の対処方法

Q. 「Version (xxx) of the JVM is not suitable for this product. Version: 1.5 or greater is required.(Java仮想マシンのバージョン(xxx)は、この製品に適合しません。バージョン1.5以上が必要です。)」とエラーメッセージが表示された。
A.環境変数「Path」の記述を見直すか、「eclipse.ini」ファイルに「-vm」オプションで、起動に使用するバージョン1.5以上のJVMを明示指定します。(参考サイト:XMind 3.2.1 バージョンアップトラブル

Q. 「failed to create the java virtual machine(Java仮想マシンの作成に失敗しました。)」とエラーメッセージが表示された。
A. メモリ不足と思われます。「eclipse.ini」ファイルの記述を修正します。(参考サイト:eclipseのメモリー不足Eclipse 3.6起動時の「Failed to create The Java Virtual Machine」エラーの対処方法Eclipse 3.6.1 Virtual Machine エラー【Windows 7】 Eclipse 3.7で1GBまでしかメモリを確保できない?OSX Eclipse 起動時のメモリ設定変更で、高速に。Eclipseの問題、エラー解決方法Eclipse/エラー/実行時の「Out Of Memory」

Q. 「Java heap space」とエラーメッセージが表示され、処理が止まってしまった。
A. 「eclipse.ini」ファイルの記述を修正します。(参考サイト:Eclipseで『Java heap space』と出て処理が止まるときの対処法

Q. 「JVM terminated. Exit code=-1(Java仮想マシンが実行終了しました。終了コードは-1です。)」とエラーメッセージが表示された。
A.「eclipse.ini」ファイルの記述を修正します。(参考サイト:eclipse起動エラー/メモリ不足エラーEclipse Europa for J2EEが起動できない時の対処法[eclipse]eclipseが起動しないEclipseの起動エラー(JVM terminated. Exit code=-1)Eclipseがエラーで起動しないeclipse.iniでJVMを指定してメモリ関係(ヒープ)のエラーを回避する。急にEclipceが起動しなくなった。起動時にエラーがでる時の対処法。

Q.プロジェクトを開いた瞬間に落ちる。「Java VM: Java HotSpot(TM) 64-Bit Server ~~~ expandUsingDeclarationsAndRemoveObjects ~~~」とエラーメッセージが表示された。
A.64ビット特有の事象です。「eclipse.ini」ファイルの記述を修正します。「-XX:-UseCompressedOops」を追加してみます。(参考サイト:UseCompressedOops オプションのデフォルト値 – めざせ!金持ち父さん

以下に「eclipse.ini」ファイルの記述例を示しますが、オプションについては、参考サイトを参照してください。(参考サイト:eclipse.iniAdvanced Topics in Running Eclipse

「eclipse.ini」ファイルを編集するには、「eclipse.ini」ファイルを右クリック→「プログラムから開く」→「ワードパッド」をクリックします。「eclipse.ini」ファイルは、メモ帳で開くと1行で表示されてしまうので、ワードパッドを利用します。メモ帳で開くと改行されないのは、「eclipse.ini」ファイルの改行コードがCRになっていることが関係しています。(参考サイト:【改行コード】LF/CR/LF+CReclipseで改行コード設定 CR/LF

・・・
-vm
c:\pleiades\java\6\bin\javaw.exe
-vmargs
-Xms480m
-Xmx480m
-Duser.name=hogefuga <hogefuga@piyo.com>
・・・

Eclipseの起動に使用されるJavaVMを明示するには、「-vm」オプションを記述します。記述する場合は「-vmargs」オプションより前に宣言しないとエラーになります。

「c:\pleiades\java\6」の部分は本サイトのインストールフォルダに従った場合の例なので、適宜読みかえてください。「-vm」と「c:\pleiades\java\6\bin\javaw.exe」は2行に分けて記述します。「-vm c:\pleiades\java\6\bin\javaw.exe」と1行で書くとエラーになります。ショートカットを作成して起動オプションでEclipseの起動に使用されるJavaVMを指定する場合は「C:\pleiades\eclipse\eclipse.exe -vm c:\pleiades\java\6\bin\javaw.exe」のように記述しますが、同様に1行で書かないよう注記しておきます。(参考サイト:Eclipse 起動時に使用する Java VM を指定する

javaw.exe と java.exeの違いは、javaw.exeはコマンドプロンプトウィンドウを開く必要がないWindowsアプリ用、java.exeはコマンドプロンプトウィンドウが開くのでコンソール用として選択します。(参考サイト:概念と定義に関する用語集の説明Windows7、「java.exe」「javaw.exe」とはなんぞや?コンソールアプリをダブルクリックで起動するためのJARファイルの作り方?

「-vm」オプションの記述がない場合は、「Eclipse」フォルダの「jre」フォルダのJREがEclipseの起動に使用されます。「jre」フォルダのJREがない場合は、環境変数「Path」に記述されたフォルダを左側から順に検索し、先にヒットしたJREが使用されます。使用させたいJREのパスを「Path」の最後に書いてしまうと、Javaプラグインをインストールするなどして公開JREをインストールしたことがあれば、環境変数の「Path」にデフォルトで記述されている「%SystemRoot%\system32」フォルダにJREが存在するのでこちらが使用されてしまい、意図したJREが使われません。

「-vmargs」オプションより以降は、起動に使用するJavaVMへの引数になります。(参考サイト:[Eclipse][Pleiades]フリーズ不具合修正と eclipse.ini の設定値ヒープ領域とパーマネント領域Permanent領域のチューニングJavaVMのメモリ管理をマスターする

「-Xms」オプションは、オブジェクトを管理するヒープ領域の初期サイズ、「-Xmx」オプションはヒープ領域が足りない場合に追加で確保する際の上限サイズの指定です。「java.lang.OutOfMemoryError」には「-Xmx」の値を調整してみます。(参考サイト:【備忘録】 Android 開発の小ネタ Eclipse へのメモリ割り当て eclipse.ini ( MacOSも )【Eclipse】OutOfMemoryの対応ヒープメモリを増やすEclipseにヒープメモリを多量に積む方法

「-Xms」を少なく取った場合「-Xmx」の値までメモリを確保する処理でオーバーヘッド(プログラムの動作に直接関係のない記憶容量の確保や、処理を進める際に発生する待ち時間)が発生します。「-Xms」と「-Xmx」の値を同じにするとGC(garbage collection:ガベージコレクション-プログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能)の回数を減らすことができます。反面、GCが発生したときは負荷が高くなるので、操作がブロックされるように感じられる場合があります。Java アプリケーション起動ツールによると、32bit版Windowsの「-Xmx」値のおよその上限は、2000mからオーバーヘッドの量を差し引いたサイズです。”コマンドプロンプト”画面で「java -Xmx(適当な数値) -version」と入力して、「Error occured during initialization of VM  Could not reserve enough space for object heap  Could not create the Java virtual machine.」とエラーメッセージがでるなら制限値を超えています。

「-XX:PermSize」オプションは、読み込むクラス情報を確保するパーマネント領域の初期サイズ、「-XX:MaxPermSize」オプションはパーマネント領域が足りない場合に追加で確保する際の上限サイズの指定です。「java.lang.OutOfMemoryError: PermGen space」には「-XX:MaxPermSize」の値を調整してみます。(参考サイト:Eclipseのメモリ不足解消

「-XX:PermSize」オプションは、Sun JVM の拡張オプションで、それ以外のJRockitやIBM JVMといったJVMでは起動できない場合があります。Eclipseの「–launcher.XXMaxPermSize」は、Sun JVM に 「-XX:MaxPermSize」を渡す働きをします。それ以外のJVM には何も渡しません。

「-Duser.name」オプションは、Javadocの@authorタグに出力される名前を設定することができます。

 

おまけ(起動時以外のエラー)

Q.プロジェクトをインポートした時に「Your project must be configured to use a JDK in order to use JSPs」とエラーメッセージが表示された。
A.JSPを含むプロジェクトをインポートしてエラーがでたはずです。JSPを含むプロジェクトは、ビルド・コンパイルに使用されるライブラリとしてJDKが必要です。Eclipseをチューニング 設定方法の「インストール済みのJREを設定するには?」に従ってJREではなくJDKを設定します。

Q.Mavenを利用したら「Eclipse is running in a JRE, but a JDK is required」や「Unable to locate the Javac Compiler in: C:\Program Files\Java\jre6\..\lib\tools.jar Please ensure you are using JDK 1.4 or above and not a JRE (the com.sun.tools.javac.Main class is required).」とエラーメッセージが表示された。
A.Mavenは、JDKに含まれている「tools.jar」が必要です。Eclipseをチューニング 設定方法の「インストール済みのJREを設定するには?」に従ってJREではなくJDKを設定します。

Q.Eclipse上でAntを実行したら「起動中(エラー:指定された VM インストールが見つかりません: 型 標準 VM、名前 jdkx.x.x_xx)」「Specified VM install not found: type Standard VM, name 標準 VM」とエラーメッセージが表示された。
A.エラーが発生しているプロジェクト内の「build.xml」を右クリック→「実行」→「外部ツール」を選択し、Antビルド配下のキャッシュを選択し、削除します。(参考サイト:操作実行中にエラーEclipseのAntが実行できなくて困ったの巻

Q.実行したら「エラー: メイン・クラスXXXが見つからなかったかロードできませんでした」」とエラーメッセージが表示された。
A.参考サイトに事例があります。(参考サイト:JavaのCLASSPATHの設定についてエクリスプJUNOのエラーEclipseでコンパイルしたJavaクラスをコマンドプロンプトからjavaコマンドで実行するには・・・。【急募】Eclipseで作成したプログラムをコマンドプロンプトで実行する方法【できない】「 set JAVA_HOME=”C:\Program Files\Java\jdk1.6.0_24″ set PATH=%PATH%;%JAVA_HOME%\bin;C:\WINDOWS\system32; set CLASSPATH=%JAVA_HOME%\program\edu2010b.jar 」

Q.「Exception in thread “main” java.lang.UnsupportedClassVersionError: xxxx : Unsupported major.minor version 51.0」とエラーメッセージが表示された。
A.新しいバージョンでコンパイルした物を古いバージョンで実行しようとしています。古いバージョンでサポートされていない命令を使用しようとしてエラーになっています。Eclipseメニューの「ウィンドウ(Window)」→「設定(Preferences)」で設定画面を開き、左側ペインで「Java」→「コンパイラー(Compiler) 」を選択し、「コンパイラー準拠レベル」のバージョンを確認します。次に、左側ペインで「Java」→「インストール済みのJRE(Installed JREs)」を選択し、「インストール済みのJRE」のバージョンを確認します。「コンパイラー準拠レベル」のバージョンが「1.7」に対して「インストール済みのJRE」のバージョンが古い「1.6」などになっているはずです。両方のバージョンを同じにあわせるようにします。例えば、「インストール済みのJRE」のバージョンが「1.6」であれば、「コンパイラー準拠レベル」も「1.6」に変えます。または「コンパイラー準拠レベル」は「1.7」のままとし、Java7をインストールし「インストール済みのJRE」のバージョンを「1.7」に変えます。

「major.minor version xx.x」の部分のJava(major.minor version)の組み合わせは以下のとおりです。

Java1.1(45.3)、Java1.2(46.0)、Java1.3(47.0)、Java1.4(48.0)、Java1.5(49.0)、Java1.6(50.0)、Java1.7(51.0)

Android関係は Androidエラーの傾向と対策 もあります。

以上です。

コマンドプロンプト利用のAndroidアプリ開発環境を構築する

Androidアプリ開発環境を 42分で構築する方法で、Eclipse上で開発する環境ができました。さらに、コマンドプロンプト”画面でDDMSやADBといったAndroidツールを”実行するのであれば、システム環境変数の設定をおこないます。

※以下の記述中バックスラッシュ記号は円記号です。コピペすると円記号になるはずです。

“コマンドプロンプト”画面を開くには、「Windows」キーを押しながら「R」キーを押して”ファイル名を指定して実行”画面を開き、名前欄に「cmd」と入力し、「OK」をクリックします。

“コマンドプロンプト”画面では、入力された文字列をコマンド(命令)と判断し、内部コマンド(cmd.exeファイルに格納されている命令)ならそれを実行します。内部コマンドでなければ、外部コマンドかプログラム(.exe、.com)かバッチファイル(.bat、.cmd)が入力されたと想定し、該当ファイルを検索し実行します。バッチファイルとは、条件分岐や変数とコマンドを組み合わせてプログラム的に制御して実行するものです。

Androidアプリ開発環境を 42分で構築する方法で構築している場合、DDMSを起動するバッチファイル「ddms.bat」は「c:\android-sdk\tools」に、ADBのプログラム「adb.exe」は「c:\android-sdk\platform-tools」にあります。

この段階でDDMSを起動しようとして、試しに「ddms」(拡張子は省略可能なので「ddms.bat」でなくてもよい)と入力して「`ddms`は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」と表示されエラーになるはずです。

今の段階でDDMSを起動するには、「c:\android-sdk\tools\ddms」と絶対参照(ルートディレクトリからのフルパス)で入力するか、「cd c:\android-sdk\tools」(「cd」は、change directory(チェンジ ディレクトリ) のこと)と入力し、Androidツールの階層に移動してから「ddms」と入力します。入力した結果「`SearchForJava`は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。 WARNING:Java not found in your path. Checking if Java is installed in C:\Program Files\Java.」と表示されるなら、Javaの場所が認識できていません。ORACLEのサイトからJava SEのダウンロードJavaのダウンロードをしたことがあればこのエラーはでないはずです。ただ、仮にエラーにならなくても、Eclipseで”インストール済みのJRE”に設定したものと異なるJavaを参照しているはずなので、環境変数でEclipseで”インストール済みのJRE”に設定したものと同じJavaを参照するように設定します。

《システム環境変数「Path」を編集する》

環境変数とは、システムが必要とするさまざまな情報を保管した変数のことで、例えば、「windir」「SystemRoot」変数はWindowsのインストールされている場所を、「temp」「tmp」変数は一時ファイルを作成する場所を示します。「Path」は実行可能ファイルの検索場所を示す環境変数です。どのディレクトリからも Androidツールを実行できるようにするには、環境変数「Path」にAndroidツールのコマンドの場所をフルパスで設定します。(参考サイト:絶対パスとフルパスの違いがイマイチわかりません。

一般に、この作業をおこなうことを「パスをとおす」という言い方をします。今は「パスが通っていない」ので、バッチファイル「ddms.bat」を見つけることができなくてエラーになっているわけです。「パスを通す」ことでフルパスで入力しなくても、どの階層にいても起動することができるようになります。「Path」を編集するときは、誤って、元々のシステム環境変数入力値を消さないようにします。セミコロン(;)は複数の値を設定する場合の区切り文字なので、忘れずに記述します。

※間違って「Path」の元々のシステム環境変数入力値を消してしまうと復旧は困難です。万一消してしまって元々の値が不明の場合、WindowsVista(32Bit)なら最低の「Path」として「%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem」を「変数値」に設定し、実行時エラーになったコマンドの場所を「Path」に追加します。(参考サイト:消してしまった環境変数の値を元に戻したいどなたかWindows7 64bit 環境変数 Pathのデフォルトを教えていただけないでしょうか?OSの種類によってバッチ・ファイルの処理を切り替える方法-OS別に調査したデフォルトの環境変数

※作業が不安な場合、システム環境変数「Path」を編集する前に”コマンドプロンプト”画面で「path > pathsave.txt」と入力して、元々の値の情報を「pathsave.txt」(ファイル名は任意)に保存しておくのもいいかもしれません。(「path」とだけ入力すると、現在の「path」の変数値が画面に出力されます。通常、コマンドの実行結果は標準出力と呼ばれるデバイスへ出力され、デフォルトでは標準出力は画面に設定されています。ここではリダイレクトという仕組みを用いて、標準出力内容をファイルに出力するよう指定しています。「path」コマンドの結果を「pathsave.txt」というファイルに書き込むという指示をしたことになります)

システム管理 完全自動化プロジェクト[入門編]を参考にして、バッチファイルで環境変数を設定するのもありかもしれません。

  1. 「Windows」キーを押しながら「Pause」キーを押して”システム”画面を開きます。
  2. 「システム詳細設定」をクリックし、システムのプロパティを開きます。
  3. 詳細設定タブの「環境変数」をクリックします。
  4. システム環境変数「Path」を選択し、「編集」をクリックします。(大文字小文字は無視されるので 「Path」「PATH」「path」はどれも同じです。例えば「PATH」があるのに「Path」を新規作成すると、「PATH」の内容を置き換えてしまうので注意してください。)
  5. 「変数値」の最初に「c:\pleiades\java\6\bin;」を追記します。(「(Eclipseで”インストール済みのJRE”に設定したフォルダ)\bin;」。Eclipse3.6.2なら「c:\pleiades\jre1.6\bin;」、”Java SEのダウンロード”のJDKなら「C:\Program Files\Java\jdk1.6.0_31\bin;」などです。)
  6. 「変数値」の最後に「;c:\android-sdk\tools;c:\android-sdk\platform-tools」を追記します。
  7. 結果、編集後の「Path」の「変数値」は、「c:\pleiades\java\6\bin;【元々のシステム環境変数入力値】;c:\android-sdk\tools;c:\android-sdk\platform-tools」となります。「OK」をクリックします。
  8. 環境変数で「OK」をクリックします。
  9. システムのプロパティで「OK」をクリックします。

※「c:\pleiades\java\6\bin」を「Path」の「変数値」の最初に追記した場合と、最後に追記した場合では、Eclipseで利用するJava(インストール済みのJREで指定したもの)以外にインストール済みのJavaがあると、”コマンドプロンプト”画面で参照されるJavaが変わってきます。実行可能ファイルの検索は、「Path」の「変数値」の左から右の順におこなわれるので、より左に記述したフォルダに存在するJavaがヒットするからです。例えば、ORACLEのサイトからJavaのダウンロードJava SEのダウンロードを標準インストールしたことがあれば、【元々のシステム環境変数入力値】の中の「C:\Windows\system32」フォルダにJava(公開JRE)が存在します。あるいは、以前インストールしたJDKへパスを通した記述が残っていることもあります。「c:\pleiades\java\6\bin」を「変数値」の最後に追記すると、起動は公開JREで、ビルド・コンパイルは古いJDKで(残っている場合)おこなわれます。「c:\pleiades\java\6\bin」(Eclipseで”インストール済みのJRE”に設定したフォルダ\bin;」)を「Path」の最初に記せば、これがJRE(確認は「java -version」)としてもJDK(確認は「javac -version」)としても間違いなく利用されます。

システム環境変数「JAVA_HOME」を新規作成して、変数値に「c:\pleiades\java\6」と設定し、「Path」の「変数値」は、「%JAVA_HOME%\bin;【元々のシステム環境変数入力値】;c:\android-sdk\tools;c:\android-sdk\platform-tools」とする記述の仕方もできます。なお、「JAVA_HOME」は、本来はTomcatアプリケーションサーバにJDKの場所を示すための環境変数でした。Tomcatを使用しないのであれば、「JAVA_HOME」を利用する書き方にしなくてもよいと思います。逆にTomcatを利用中であれば「JAVA_HOME」は設定済みだと思います。この場合、Tomcatが利用するJavaが変わると困るなら、「JAVA_HOME」は書き換えず、「Path」の「変数値」は、「【元々のシステム環境変数入力値】;c:\android-sdk\tools;c:\android-sdk\platform-tools」とし、コマンドラインでコンパイル時にパス指定することでEclipseと同じバージョンでビルドされるようにするなど工夫が必要になるでしょう。

※システム環境変数はすべてのユーザーに適用され、ユーザ環境変数はログオンユーザーに対してのみ適用されます。通常、ユーザー環境変数を先に探し、該当が無ければシステム環境変数を適用します。しかし環境変数「Path」の場合は、ユーザー環境変数「Path」の値は、システム環境変数「Path」の値の末尾に追加されます。すなわち、ユーザー環境変数「Path」を新規作成し、変数値に「c:\pleiades\java\6\bin;c:\android-sdk\tools;c:\android-sdk\platform-tools」と設定する方法は、システム環境変数「Path」の「変数値」の最後に「c:\pleiades\java\6\bin;c:\android-sdk\tools;c:\android-sdk\platform-tools」を追記したことと同じになります。ですから、インストール済みのJavaがあればそちらが優先して利用され、「c:\pleiades\java\6\bin;」は後回しになります。実際に記述して、”コマンドプロンプト”画面”で「set」と入力し環境変数の一覧を表示すると、このことが確認できます。

《設定の確認》

環境変数を設定中に”コマンドプロンプト”画面を開いたままにしていると、その画面には環境変数の修正結果は反映されません。一度閉じて開き直すか、別の”コマンドプロンプト”画面を開いて設定が反映されたかを確認します。

  1. “コマンドプロンプト”画面で、「java -version」と入力します。
  2. バージョン情報が表示されればJavaが認識されています。(`java`は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」と表示されエラーになる場合は、”コマンドプロンプト”画面”で「path」または「set」と入力してみます。環境変数の設定が表示されるので、意図した設定になっているか、「;」や「¥」が抜けていないかを確認します。)
  3. 「ddms」と入力します。(「`ddms`は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」と表示されエラーになる場合は、環境変数に入力した「c:\android-sdk\tools」の部分の入力誤りがないか確認します。)
  4. DDMSの起動を確認したら、画面右上の「×」をクリックして閉じます。(閉じないと、”コマンドプロンプト”画面で次のコマンドが入力できません)
  5. 「adb version」と入力します。(「`adb`は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」と表示されエラーになる場合は、環境変数に入力した「C:\android-sdk\platform-tools」の部分の入力誤りがないか確認します。)
  6. “コマンドプロンプト”画面にADBのバージョン情報が表示されれば問題ありません。

これで、現在のディレクトリがどこであってもAndroidツールのコマンドが利用できるようになり、”コマンドプロンプト”画面”での作業が便利になります。

《Apache ANTのインストールなど さらに非Eclipse開発環境を知りたい方は》

こちらのサイトを紹介します m(_ _)m

Eclipseをチューニング 設定方法

Eclipseの設定
・Eclipseメニューの「ウィンドウ(Window)」→「設定(Preferences)」で設定画面を開き、すべてのプロジェクトで共通して用いられる設定をします。プロジェクトを右クリック→「プロパティー」からプロジェクト固有の設定をすることで、プロジェクトにより文字コードを変えたりもできます。なお、解説文中のペインとは区画された部分ウィンドウを指します。

Q. ヒープ領域のサイズと使用しているメモリの量をワークベンチに表示するには?
A. 左側ペインで「一般(General)」を選択します。右側ペインで、「ヒープ・ステータスを表示」にチェックを入れます。右下に表示されるようになります。ゴミ箱アイコンをクリックすると強制的にガベージコレクションを走らせることもできます。

Q. Eclipseメニューの「ファイル」-「最近開いたファイル一覧」を10ファイルにするには?
A. 左側ペインで「一般(General)」→「エディター(Editors)」を選択します。右側ペインで、「最近開いたファイルを保持するリストのサイズ」に「10」を入れます。

Q. エディタでタブキーを押すとスペースを挿入するように設定するには?
A. 左側ペインで「一般(General)」→「エディター(Editors)」→「テキスト・エディター(Text Editor)」を選択します。右側ペインで、「タブでスペースを挿入(Insert spaces for tabs)」にチェックを入れます。

Q. 80桁でマージンを表示するよう設定するには?Text Editor
A. 左側ペインで「一般(General)」→「エディター(Editors)」→「テキスト・エディター(Text Editor)」を選択します。右側ペインで、「印刷マージンの表示(Show print margin)」にチェックを入れ、印刷マージン列に「80」を指定します。

Q. 行番号を表示するように設定するには?
A. 左側ペインで「一般(General)」→「エディター(Editors)」→「テキスト・エディター(Text Editor)」を選択します。右側ペインで、「行番号の表示(Show line numbers)」にチェックを入れます。

Q. テキスト中の空白、TAB、改行などを可視化するには?
A. 左側ペインで「一般(General)」→「エディター(Editors)」→「テキスト・エディター(Text Editor)」を選択します。右側ペインで、「空白文字の表示(Show whitesapce characters)」にチェックを入れます。半角空白が” ・”に、 TAB が”≫”に、CR/CRLF/LFの違いがわかるように表示されます。

Q. Proxyの設定をするには?
A. 左側ペインで「一般(General)」→「ネットワーク接続(Network Connections)」を選択します。右側ペインで、「アクティブ・プロバイダー(Active Provider)」として「ネイティブ(Native)」を選択した場合、Internet Explorerのプロキシサーバーの設定情報を引き継ぎます。(Internet Explorerで「Alt」キーを押してメニューを表示し、「ツール」→「インターネットオプション」→「接続」タブ→「LANの設定」で表示されるプロキシサーバーの設定です) 「アクティブ・プロバイダー(Active Provider)」として「マニュアル(Manual)」を選択した場合、「プロキシー・エントリー(Proxy entries)」の「HTTP」・「HTTPS」・「SOCKS」各行を順に「編集」します。「プロキシー・エントリーの編集」画面で「ホスト」、「ポート」、「認証情報」を設定して「OK」をクリックします。(参考サイト:Eclipseのプロキシの設定

Q. 外部で修正されたファイルが自動的に再読み込みされるようにするには?
A. 左側ペインで「一般(General)」→「ワークスペース(Workspace)」を選択します。右側ペインで、「アクセス時にリフレッシュ」にチェックを入れます。

Q. 文字コードをUTF-8に設定するには?
A. 左側ペインで「一般(General)」→「ワークスペース(Workspace)」を選択します。右側ペインで、「テキスト・ファイルのエンコード」の「その他」にチェックを入れ、「UTF-8」を選択します。(参考サイト:テキストファイルの文字コード

明示的にEclipseのエンコーディングをUTF-8にするにはeclise.exe と同じフォルダにあるeclipse.ini ファイルに「-Dfile.encoding=utf-8」 を追加します。(参考サイト:eclipse をutf-8で使うEclipseのデフォルトのテキスト・ファイル・エンコードをUTF-8に

または、左側ペインで「一般(General)」→「コンテンツ・タイプ」を選択し、設定します。(参考サイト:eclipseでのjsファイルのデフォルトエンコードに関してeclipse で *.htm ファイルが文字化けするときEclipseの『内容から判別する』を『コンテナーから継承する』に変更する

HTML、CSS、XML、JSPは、新規作成するファイルのエンコード文字セットを設定できます。(参考サイト:開発環境の準備(Eclipse)Eclipse PHP Plugin PDT

Q. テキスト・ファイルの改行コードをLFに設定するには?
A. 新規テキスト・ファイルの改行コードをLFに設定するには、左側ペインで「一般(General)」→「ワークスペース(Workspace)」を選択します。右側ペインで、「新規テキスト・ファイルの行区切り文字」の「その他」にチェックを入れ、「Unix」を選択します。(※CRにするには「Mac Os 9」、CR+LFにするには「Windows」を選択します)

既存テキスト・ファイルの改行コードをLFに設定するには、Eclipseメニューの「ファイル」→「行区切り文字の変換」→「Unix」を選択します。(参考サイト:EclipseでXMLファイルの改行文字を変更する方法eclipseで改行コード設定 CR/LFeclipseで改行コード、文字コードを統一するコードを比較したら全行変更有りと表示されたとき文字コードと改行コードの扱い

意図した結果にならない場合、自動変換されている可能性があります。(参考サイト:eclipseのCVSで改行コードが自動変換されてしまうCVSからSubversionへの移行時の改行コードに関するメモ(Eclipse利用時)Perl::Tidy で改行コードを指定する。Gitレポジトリのスペースや改行を統一するには

Q. ローカル・ヒストリーの保存期間を変更するには?
A. 左側ペインで「一般(General)」→「ワークスペース(Workspace)」→「ローカル・ヒストリー」を選択します。右側ペインで、「ファイルを保持する日数」を希望する日数にします。Eclipseを再起動しないと変更が有効になりません。

Q. 起動時に Eclipse外でワークスペースに追加したファイルを読み込みさせるには?
A. 左側ペインで「一般(General)」→「開始およびシャットダウン(Startup and Shutdown)」を選択します。右側ペインで、「始動時にワークスペースを更新」にチェックを入れます。

ワークスペースは、Eclipseメニューの「ファイル」→「リフレッシュ(F5)」でも更新できます。

Q. 終了時に “終了の確認” 画面を表示させるには?
A. 左側ペインで「一般(General)」→「開始およびシャットダウン(Startup and Shutdown)」を選択します。右側ペインで、「最後のウィンドウを閉じるときに終了を確認」にチェックを入れます。(参考サイト:終了の確認ダイアログを表示させる

Q. 起動時に “ワークスペース・ランチャー” 画面を表示させるには?
A. 
左側ペインで「一般(General)」→「開始およびシャットダウン(Startup and Shutdown)」→「ワークスペース」を選択します。右側ペインで、「始動時にワークスペースをプロンプト」にチェックを入れます。(参考サイト:ワークスペース・ランチャーを表示させる

Q.  “ワークスペース・ランチャー” 画面の選択リストで表示される過去に使用したワークスペースの履歴から、表示不要な項目を消すには
A. 左側ペインで「一般(General)」→「開始およびシャットダウン(Startup and Shutdown)」→「ワークスペース」を選択します。右側ペインで、「最近使ったワークスペース」から消したい項目をクリックし、「除去」をクリックします。”ワークスペース・ランチャー” 画面の選択リストから消えるだけで、フォルダ自体は削除されません。(参考サイト:いらなくなったワークスペースを消すには

Q. Javaエディタの文字の大きさを設定するには?
A. 左側ペインで「一般(General)」→「外観(Appearance)」→「色とフォント(Colors and Fonts)」を選択します。右側ペインで、「Java」→「Javaエディター・テキスト・フォント」ダブルクリック→「フォント」画面で「サイズ」を希望する大きさに設定して「OK」をクリックします。(参考サイト:Eclipse 4.2 Junoのエディタのフォントを変更する

Q. コンソールの文字の大きさを設定するには?
A. 左側ペインで「一般(General)」→「外観(Appearance)」→「色とフォント(Colors and Fonts)」を選択します。右側ペインで、「デバッグ(Debug)」→「コンソール・フォント(Console font)」ダブルクリック→「フォント」画面で「サイズ」を希望する大きさに設定して「OK」をクリックします。(参考サイト:【Eclipse】行番号とコンソール文字サイズ

Q. Javaエディタとコンソールの文字の大きさを一度に設定するには?
A. 
左側ペインで「一般(General)」→「外観(Appearance)」→「色とフォント(Colors and Fonts)」を選択します。右側ペインで、「基本(Basic)」→「テキスト・フォント」ダブルクリック→「フォント」画面で「サイズ」を希望する大きさに設定して「OK」をクリックします。(参考サイト:覚えておきたいEclipse IDE エディタ周りの設定プログラミングでオススメのフォント目の疲労軽減のためEclipseを黒背景にした

Q. ¥(円マーク)を入力すると\(バックスラッシュ)で表示されるのを解消するには?
A. 左側ペインで「一般(General)」→「外観(Appearance)」→「色とフォント(Colors and Fonts)」を選択します。右側ペインで、「基本(Basic)」→「テキスト・フォント」ダブルクリック→「フォント」画面で「フォント名」を【MS ゴシック】、「文字セット」を【日本語】に設定して「OK」をクリックします。

※¥(円マーク)の文字コード「0x5C」は「文字セット」が【欧文】しか選べないものが「フォント名」に設定されていると\(バックスラッシュ)で表示されます。なお、ISO-8859-1では¥(円マーク)の文字コードとして「0xA5」が割りあてられていますが、制御コードとみなされるのは「0x5C」の方です。(参考サイト:javaで円マークとバックスラッシュ円記号

Q. インストール済みのJREを設定するには?
A. 左側ペインで「Java」→「インストール済みのJRE(Installed JREs)」を選択します。右側ペインの一覧に表示されたJREから、設定したいJRE(JDK)にチェックを入れます。

※設定したいJRE(JDK)が一覧に無い場合は、「追加」をクリック→「標準VM」を選択し「次へ」をクリック→「ディレクトリー」をクリック→フォルダの参照画面から、例えば「コンピュータ」≫「ローカルディスク」≫「Program Files」≫「Java」≫「jdk1.6.0_33」と追加したいフォルダを選択し、「OK」をクリック→JREシステムライブラリー欄にjarファイルが列挙されるを確認して「完了」をクリックすると追加されます。追加しただけでは設定されないので、チェックを入れます。

※設定したJRE(JDK)は、設定以降の新規のプロジェクトから利用されます。既存のプロジェクトは設定前のJREを利用したままで自動では変更されません。そのため、設定前のJREの実体を削除するとビルドエラーになります。既存のプロジェクトへ反映させる方法は、対象のプロジェクトを右クリック→「ビルド・パス」→「ビルド・パスの構成」で「ライブラリー」タブ画面を開きます。不要とする以前のJREである「JREシステム・ライブラリー」を選択して「除去」をクリックします。次に、「ライブラリーの追加」をクリック→「JREシステム・ライブラリー」を選択して「次へ」をクリック→「ワークスペースのデフォルトJRE」にチェックが入っているので「完了」をクリックします。これで、ワークスペースのデフォルトJREすなわち「インストール済みのJRE」で設定したJRE(JDK)が利用されます。

Q. Eclipse終了時に、Javaソースに自動的にコード・フォーマッターを適用するには?
A. 左側ペインで「Java」→「エディター(Editor)」→「保管アクション(Save Actions)」を選択します。右側ペインで、「保管時に選択したアクションを実行 (Perform the selected actions on save)」にチェックを入れ、「ソース・コードのフォーマット (Format Source Code)」にチェックを入れます。

Q. ソースファイルのimport宣言などが折りたたまれないよう設定するには?
A. 左側ペインで「Java」→「エディター(Editor)」→「折りたたみ」を選択します。右側ペインで、「折りたたみを使用可能にする」のチェックをはずします。

Q. コンパイラー準拠レベルを設定するには?
A. 左側ペインで「Java」→「コンパイラー(Compiler) 」を選択します。右側ペインで、「コンパイラー準拠レベル(Compiler compliance Level)」を選択します。設定し終えたら設定画面の「OK」をクリックします。コンパイラー設定が変更ダイアログが出て、フル・ビルドを行うか問われるので「はい」をクリックします。

Q. 間違ってeclipse内のタブやウィンドウを消してしまったのを回復するには?
A. eclipseメニューの「ウィンドウ」→「パースペクティブのリセット」で画面表示を初期化します。(参考サイト:画面表示を初期状態に戻す

最後に有益な他サイト様を紹介します。
【保存版】 eclipseを入れたら必ず導入している設定方法 【初期設定&プラグイン】