こんなエラーが出た。

Error generating final archive: Debug certificate expired on 10/05/14 19:05! アプリケーション名 Android Packaging Problem

公式のガイドラインにあったのでTroubleshooting早速直してみた。

問題の原因はADTが提供するデバッグ用の署名に使うkeystoreの期限が切れたため。

多分ADTを完全にアンインストールして再インストールすればまた生成してくれそうだけどエミュレータまで消えてしまうのでガイドラインに沿って手動で作成する事に。

古いkeystoreを削除

WindowsXPなら以下の所にdebug.keystoreがあるので削除する。

C:\Documents and Settings\<user>\.android

keystoreを作成

問題の解決には二通りの方法がある。

  • マシンのロケールを変えてリビルドするとdebug.keystoreが出来上がるよ~
  • ロケール変えたくなかったら他のマシンで作ったdebug.keystoreをコピーしたらいいよ~
  • めんどくせー、と思ったらSigning Your ApplicationsこのページにDebugの署名について書いてあったので真似して適当に自分で作ってみた。

    \>keytool -genkey -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android -dname "CN=Android Debug, O=Android,C=US"

    これでdebug.keystoreが生成される。元のとコンパチかは不明だが、これを.androidの下に保存し、Eclipseを再起動、対象プロジェクトをcleanしたり、propertiesでビルドターゲットを1.6から2.1に変えたり適当にやってたらエラーが消えた。