web-dev-qa-db-ja.com

adb- [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION]

抽出されたAPKのファイルを変更するときは、再圧縮し、拡張子を.apkに変更して、次のようにインストールします。

$ adb install CustomAPK.apk 
2831 KB/s (41896599 bytes in 14.450s)
    pkg: /data/local/tmp/CustomAPK.apk
Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION]

これは何からですか?

5
Soren

キーを生成し、apkに署名します: Android Developer Website

アプリに手動で署名する

アプリに署名するのにAndroid Studioは必要ありません。Android SDKとJDKの標準ツールを使用して、コマンドラインからアプリに署名できます。コマンドラインからリリースモードでアプリに署名します。

Keytoolを使用して秘密鍵を生成します。例えば:

$ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

この例では、キーストアとキーのパスワードの入力、およびキーの識別名フィールドの入力を求めるプロンプトが表示されます。次に、my-release-key.keystoreというファイルとしてキーストアを生成します。キーストアには、10000日間有効な単一のキーが含まれています。エイリアスは、後でアプリに署名するときに使用する名前です。

アプリをリリースモードでコンパイルして、署名されていないAPKを取得します。 jarsignerを使用して、秘密鍵でアプリに署名します。

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name

この例では、キーストアとキーのパスワードの入力を求められます。次に、APKをインプレースで変更して署名します。異なるキーを使用してAPKに複数回署名できることに注意してください。

APKが署名されていることを確認します。例えば:

$ jarsigner -verify -verbose -certs my_application.apk

Zipalignを使用して最終的なAPKパッケージを調整します。

$ zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk

zipalignは、すべての非圧縮データがファイルの先頭を基準にした特定のバイトアラインメントで始まることを保証します。これにより、アプリが消費するRAMの量が削減されます。

4
Soren

INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION

このアンインストールアプリの場合、実行ボタンをクリックしてこの問題を修正します