2012-02-20 25 views
1

既にインストールされているアプリケーションをデバッグしようとすると、上記のエラーメッセージが表示されます。これを実行するほとんどの人は、異なるキーファイルを持つ異なるマシン上で開発しているようですが、私は同じボックスですべてをやっています。異なるアプリケーションシグネチャのため再インストールに失敗しました

私の問題は、データベースのアップグレードプロセス(つまり、SQLiteOpenHelper拡張機能のonUpgrade()メソッドが何をするか)をテストしていることです。このため、私は古いビルドの様々な上でアップグレードを試してみたいと思います。これらのビルドは、署名されたアプリケーションパッケージとして利用できます。このようなパッケージを新しいエミュレータにデプロイして、現在のバージョンを上にデバッグしようとすると、件名にエラーが表示されます。これは、デバッグ展開パッケージには署名がなく、現在インストールされているパッケージに署名が付けられているためです。繰り返しますが、現在インストールされているアプリケーションをアンインストールするとエラーが消えてしまいますが、アップグレードをテストできません。

私の開発環境を古いビルドバージョンに戻したくないので、これらのバージョンの未署名パッケージをビルドすることができます。私はこれを行うことさえできないかもしれません。なぜなら私は最近ソースコードリポジトリを切り替えていくつかの歴史を失ったからです。

デバッグ用の署名付きのパッケージを生成するためにEclipseを入手できたら、それはうまくいくはずです。また、署名されたパッケージを手動でデプロイして、ビルド/デプロイメントの手順を行わずにデバッグセッションを開始することもできますが、これが可能かどうかはわかりませんでした。私に何ができる?

編集:Android documentationは、デバッグキーでパッケージに署名する方法を理解するのに役立ちましたが、プライベートキーでデバッグする必要があるため、これは役に立ちません。これは不可能だと思います。

+0

あなたは1人の署名を使用して、それらすべてを生成する必要があります - それ以外の場合文句を言わない仕事。アンインストールと新規インストールは、異なるシグネチャで動作します。 http://developer.android.com/guide/publishing/app-signing.html –

答えて

3

リリースキーで現在のパッケージに署名し、デバイスにインストールし、アプリケーションを実行し、Eclipseでデバッガを接続することができます。デバッガを接続する方法:デバイス上のDDMSパースペクティブで「緑のバグ」を使用してアプリケーションや押しボタンを選択し表示します。

enter image description here

+0

完璧です。唯一の問題は、起動時にアプリケーションが強制終了する(古いデータベースが存在する)ことです。速いクリックで私はブレークポイントに入ることができました。ありがとう。 – cdonner

1

私は答えとして、それを投稿します:

あなたが1つのシグネチャでそれらすべてを生成する必要があります - それ以外の場合文句を言わない仕事。アンインストールと新規インストールは、異なるシグネチャで動作します。

Eclipseのユーザーが すると、あなたは、Eclipse/ADTで開発している場合(署名のための基本的なセットアップで説明したようにキーツールとjarsignerを設定している)はデフォルトで有効になっているデバッグモードでの署名、:http://developer.android.com/guide/publishing/app-signing.htmlもそこから取られました。アプリケーションを実行またはデバッグすると、ADTはデバッグ証明書で.apkに署名し、パッケージ上でzipalignを実行してから、選択したエミュレータまたは接続デバイスにインストールします。 ADTがKeytoolにアクセスできる場合、あなたの特定の行動は必要ありません。

+0

Sergey、私はそれを理解しましたが、私は古いパッケージをデバッグキーで辞めることはできず、再作成もできません。私は運が悪いと思われ、なぜ私のアップグレードがデバッガの助けなしで失敗するのかの理由を見つけなければならないでしょう。 – cdonner

+0

@cdonnerコマンドライン 'adb shell'を使用して' logcat'と入力すると、どこが失敗するかを確認することができます –

関連する問題