debug.keystore期限切れ

Android開発環境を構築し、しばらく開発を続けていると、下記のようなエラーが出て、アプリが実行できなくなることがあります。
症状としては、プロジェクトだけエラーの×が表示され、ソースにはエラーが発生していない状態となります。
 
ポップアップエラーメッセージは「Your project contains error(s),please fix them begore running your application
メッセージウィンドウの表示は「Error generating final archive: Debug Certificate expired on yy/mm/dd hh:nn ProjectName  Unknown Android Packaging Problem」
 
これは、Android開発環境に存在する「debug.keystoreの有効期限切れ」が原因です
debug.keystoreの作成は自分で行えるので、順を追って説明します

まず、debug.keystoreの置き場所を見つけます
 
メニューから「Window」→「Preferences」を選択
 
Android→Buildの中に「Default debug keystore」という項目があります。ここに書いてあるファイルがdebug.keystoreです
 
次に、エクスプローラで実際のファイルを確認します
確かにありますね
 
続いて、DOS画面を立ち上げ、debug.keystoreのあるフォルダへ移動、keytoolを使用して今のdebug.keystoreの内容を確認します
 
【コマンド】
keytool -list -v -keystore debug.keystore
ちなみに、debug.keystoreはファイル名なので、上記で確認したファイル名に置き換えて実行してください
 
keytool -list -v -keystore debug.keystore」とコマンドを打つと、debug.keystoreの内容が出力されます
有効期限も出力されており、有効期限が切れているのが確認できると思います。
 
次に新しいkeystoreファイルを作成します。作成する前に、今存在しているkeystoreファイルを別名に変更しておきます。
 
【コマンド】
keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000 -dname "CN=Android Debug,O=Android,C=US"
パスワードを聞かれますので「android」と入れて置いてください
 
無事作成できたら、keytool -list -v -keystore debug.keystoreで作成できているか確認しましょう
ちなみに-validity 10000は10000日の有効期限という意味なので、有効期限も2039年とか出ると思います。
 
最後にEclipseを立ち上げ、デバッグが出来るか確認します。
注意点ですが、端末にデバッグ中のアプリがインストール済みの場合、アプリを上書きできないため、一度アンインストールをした後、デバッグを行うようにしてください。
 
アンインストールせずに実行すると、以下のようなメッセージが出力されます
[2011-12-30 17:04:46 - WebBrs] Re-installation failed due to different application signatures.
[2011-12-30 17:04:46 - WebBrs] You must perform a full uninstall of the application. WARNING: This will remove the application data!
[2011-12-30 17:04:46 - WebBrs] Please execute 'adb uninstall jp.gama.oda.webbrs' in a shell.
[2011-12-30 17:04:46 - WebBrs] Launch canceled!
 
Comments