diff --git a/packages/client-android/android/app/src/main/java/dev/yuzu/gca/MainActivity.kt b/packages/client-android/android/app/src/main/java/dev/yuzu/gca/MainActivity.kt index 1fbd110..db9699a 100644 --- a/packages/client-android/android/app/src/main/java/dev/yuzu/gca/MainActivity.kt +++ b/packages/client-android/android/app/src/main/java/dev/yuzu/gca/MainActivity.kt @@ -210,7 +210,13 @@ class MainActivity : AppCompatActivity() { val packageInstaller = packageManager.packageInstaller val params = PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL) val sessionId = packageInstaller.createSession(params) - val session = packageInstaller.openSession(sessionId) + val session: PackageInstaller.Session + try { + session = packageInstaller.openSession(sessionId) + } catch (e: Exception) { + packageInstaller.abandonSession(sessionId) + throw e + } try { apkFile.inputStream().use { input -> session.openWrite("package", 0, apkFile.length()).use { output -> @@ -225,6 +231,9 @@ class MainActivity : AppCompatActivity() { PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE ) session.commit(pendingIntent.intentSender) + } catch (e: Exception) { + session.abandon() + throw e } finally { session.close() }