しばらく放置してアプリが起動しなくなるその前に

しばらく放置してアプリが起動しなくなるその前に




Androidアプリをしばらく開発してないとキーストアが古くなって起動しなくなります。
いちいち起動しなくなる度に原因を調べるのも面倒なので、
キーストアを常に新しくしてしまいましょう。

キーストアは自動生成されるので何も考えずEclipse起動前に削除するのが手っ取り早いです。
そこで、LogCat対策の前に↓のバッチファイルコマンドを入れます。

起動バッチ.bat
rem 時が経つと起動できなくなるので古いキーストア削除
rem win7の場合は以下のパス
rem それ以外の環境の場合はググれば出てきます
echo キーストア削除
del C:\Users\<ユーザー名>\.android\debug.keystore



rem LogCatが死んだときのために一度↓を実行

これで長い間放置してもアプリが起動しなくなることがなくなります。

が、これでは問題が……
アプリをEclipseから実行した後にEclipseを再起動するとアプリが起動できなくなりますorz

これを解決するには一度アプリをアンインストールする必要があります。
が、起動する度にいちいち手動でアンインストールするのは面倒です。

そこで↓のように修正します。

rem 時が経つと起動できなくなるので古いキーストア削除
rem win7の場合は以下のパス
rem それ以外の環境の場合はググれば出てきます
echo キーストア削除
del C:\Users\<ユーザー名>\.android\debug.keystore

cd <アンドロイドSDKのパス>\AndroidSDK\android-sdk\platform-tools



rem キーストアを削除するとアプリをアンインストールする必要がある
rem -dは実機指定、-eでエミュレータ指定
echo アプリをアンインストール
adb uninstall -d "<アンインストールするパッケージ名>"



rem LogCatが死んだときのために一度↓を実行

これで、いちいちアンインストールしなくても済みます。

ただ、アンインストールコマンドで実機指定をしていると、実機を接続してないと先に進みません。
これではただEclipseを起動したいだけの時に困るのでちょっと改造してみます。

rem 時が経つと起動できなくなるので古いキーストア削除
rem win7の場合は以下のパス
rem それ以外の環境の場合はググれば出てきます
echo キーストア削除
del C:\Users\<ユーザー名>\.android\debug.keystore

cd <アンドロイドSDKのパス>\AndroidSDK\android-sdk\platform-tools

if "%1" == "" goto LOG_CAT_REBOOT



rem キーストアを削除するとアプリをアンインストールする必要がある
rem -dは実機指定、-eでエミュレータ指定
rem バッチファイルの第一引数はパッケージ名を指定してください
echo アプリをアンインストール
adb uninstall -d %1



rem LogCatが死んだときのために一度↓を実行
:LOG_CAT_REBOOT

アンインストールするファイル名を引数で取得するようにしました。
引数がないときはアンインストールコマンドを実行しません。

これでこのバッチファイルをただ叩いたときはアンインストールなしでEclipse起動、
第一引数を指定するとアプリをアンインストールしてEclipseを起動できるようになります。

さらに嬉しいことに、パッケージごとにバッチファイルを作る必要がなくなりました!
これで、バッチファイルが見やすくなるというものです。

ちなみに、パッケージを指定して起動バッチを叩くには↓のようなバッチファイルを作ります。

アンインストール付きバッチ
call 起動バッチ.bat "<アンインストールするパッケージ名>"


<前のページ