JDK7でAndroidアプリを正しくビルドできない問題を調査した
ビルドにJDK7を使うとAndroidアプリのrelease版がインストールできない問題に遭遇した。しかもdebug版はちゃんと動く。そして原因判明するまでの調査過程をメモっておく。
解決編→ http://www.kaoriya.net/blog/2012/05/10

ぐぬぬぬ。JDK7でAndroidプロジェクトのrelease版をant releaseで作ると、installできないアプリが作られる。それ以外は全部動くのに。
2011-11-01 22:58:41
JDK7にAndroid SDKが動かない落とし穴があるとは…ちょっと想像できなかった。しかもリリース版だけで、その他の部分はちゃんと動くんだもの。
2011-11-01 23:11:48
JDK7でもant debug時はSHA1でdigestされてる。かといって手動でjarsignerに-digestalg指定しても、動くAPKにはならなかった。jarsignerの使い方を間違ってる可能性は否定できないが。
2011-11-01 23:33:36
debug版が動いていることから、build.xmlを追ってdebug/releaseで署名がどう違っているかを検証すればわかりそうだな。
2011-11-01 23:34:56
じぇんじぇん経路が違った。debugはSDKのSignedJarBuilderなのに 、releaseはantのsignjarタスクだった。この2つがJDK6では同じ動作、JDK7では違う動作になるだろうね。
2011-11-01 23:45:22
できた~。JDK7でもAndroidのapkにもちゃんとサインできたよー。-sigalg SHA1withRSA -digestalg SHA1この2つのオプションが必要だった。これは完全にブログネタだな。
2011-11-01 23:57:53
あばばば…JDK6からJDK7にかけてsigalgとdigestalgのデフォルト値が変わっちゃってるw http://t.co/RKgNDaQI http://t.co/6s3Ob57S
2011-11-01 23:59:24
謎は全て解けた m9(`・ω・´)シャキーン そしてantのsignjarにはsigalgとdigestalgを指定する口がない \(´・ω・`)/オワタ
2011-11-02 00:05:39