Closed5
【Android】"INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION"エラーを改善する
問題の経緯
- 数年前に作成したプロジェクトの改修を行う必要があり、当時に利用していたAndroid Studioを利用してエミュレータ実行したところ表題のエラーが発生しました。
エラー詳細
※既に同じパッケージ名のアプリがインストールされている訳でもなく、インストール&実行が出来ない。
Application Installation Failed
Installtion failed with message Failed to Finalize session: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION:Failed parse during installPackageLI: Failed to read manifest from /data/app/vmdl445660066.tmp/split_lib_sclice_9_apk.apk: null.
It is possible that this issue is resolved by unistalling an existing version of the apk if it is present, and then re-installing.
WARNING: Uninstalling will remove the application data!
Do you want to uninstall the existing application?
--------------------
// 日本語訳
アプリケーションのインストールに失敗しました
Failed to Finalize sessionというメッセージが表示され、インストールに失敗しました。INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION:Failed parse during installPackageLI: Failed to read manifest from /data/app/vmdl445660066.tmp/split_lib_sclice_9_apk.apk: null.と表示され、インストールが失敗しました。
この問題は、既存のバージョンのapkが存在する場合、アンインストールしてから再インストールすることで解決する可能性があります。
警告: アンインストールするとアプリケーションのデータが削除されます!
既存のアプリケーションをアンインストールしますか?
開発環境
- MacOS Venture(13.0.1)
- Android Studio 3.1.4
#プロジェクトの設定情報
項目 | 値 |
---|---|
Compile Sdk Version | API 31 |
Build Tools Version | 31.0.0 |
Min Sdk Version | API 23 |
Target Sdk Version | API 31 |
Androidエミュレータ | Pixel2 API30 |
AndroidManifest.xmlファイル情報
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test.androidtest">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
問題が解決した方法
- Android Studioの設定である、「Instant Run」という機能を無効化することで解決しました。
以下参考URLにある手順通りに設定変更することで問題が解決。
※どういう影響でインストールエラーに繋がっていたのかは理解出来ておらずです。分かり次第追記したいと思います。
stackoverflow | Android INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION while starting the app
「Instant Run」の無効化手順
- [Android Studio] > [Preferences...] > [Instant Run] > [Enable Instant Run to hot swap code/resorce changes on deploy(default enabled)] のチェックをオフにする
- [Apply] ボタンを押下する
Instant Run とは
- Android Studio 2.0 から追加された機能。
- アプリ全体を再インストールするのではなく、変更点だけを反映することで更新内容の確認効率がアップする機能(という認識)。
Instant Run:
Android Studio は、これまでにない速さでクリーンビルドをデプロイできるようになりました。
さらに、エミュレータまたは物理デバイスに対する増分コード変更のプッシュもほぼ瞬時に行われます。
新しいデバッグビルドを再デプロイしなくても、また、ほとんどの場合アプリを再起動しなくても、更新内容を確認できます。
表題のエラーと Instant Run の関係性
- 表題のエラーは「Instant Run」を使ったがために、ビルド途中でファイルが見つからなくなる(nullになる)のが原因と思われる(完全に理解できておりません)
- そのため、デバッグビルドの効率は落ちるものの「Instant Run」を無効にしてしまえば、エラーは改善する。
参考URL
Instant Run を無効にしないまま、表題のエラーを改善する方法は未調査の状態です。
AndroidStudioのバージョンもこの機会に更新したいため、一旦クローズします。
このスクラップは2022/12/04にクローズされました