vendetta-mod / Vendetta

A mod for Discord's mobile apps.
BSD 3-Clause "New" or "Revised" License
1.46k stars 97 forks source link

Failed changing the app's icon on installation #174

Open racked23 opened 1 year ago

racked23 commented 1 year ago

I get an error that completely stops the installation process, logs are posted below:


Built from commit 796217b on main (Changes Present)

Running Android 12, API level 31
Supported ABIs: arm64-v8a, armeabi-v7a, armeabi

Checking if base-201013.apk is cached
base-201013.apk is not cached, downloading now
Move base-201013.apk to working directory
Checking if config.arm64_v8a-201013.apk is cached
config.arm64_v8a-201013.apk is cached
Move config.arm64_v8a-201013.apk to working directory
Checking if config.en-201013.apk is cached
config.en-201013.apk is cached
Move config.en-201013.apk to working directory
Checking if config.xxhdpi-201013.apk is cached
config.xxhdpi-201013.apk is not cached, downloading now
Move config.xxhdpi-201013.apk to working directory
Checking if vendetta.apk is cached
vendetta.apk is cached
Move vendetta.apk to working directory

Failed on step CHANGE_ICON

java.lang.RuntimeException: Failed to open zip in append mode: InvalidArchive("Invalid Central Directory header")
    at com.github.diamondminer88.zip.ZipWriter.open(Native Method)
    at com.github.diamondminer88.zip.ZipWriter.<init>(ZipWriter.java:51)
    at dev.beefers.vendetta.manager.ui.viewmodel.installer.InstallerViewModel.install(InstallerViewModel.kt:293)
    at dev.beefers.vendetta.manager.ui.viewmodel.installer.InstallerViewModel.access$install(InstallerViewModel.kt:41)
    at dev.beefers.vendetta.manager.ui.viewmodel.installer.InstallerViewModel$install$1.invokeSuspend(Unknown Source:14)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
    at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)```
TrashedKat commented 11 months ago

Encountering a similar issue, I managed to resolve it by reverting to version 1.0.94 of the manager and doing a full reinstallation.

Here are my logs from when I was getting the issue on v1.0.96:

Vendetta Manager v1.0.96 Built from commit 5316709 on main (Changes Present)

Running Android 13, API level 33 Supported ABIs: arm64-v8a, armeabi-v7a, armeabi

Checking if base-204117.apk is cached base-204117.apk is not cached, downloading now Move base-204117.apk to working directory Checking if config.arm64_v8a-204117.apk is cached config.arm64_v8a-204117.apk is not cached, downloading now Move config.arm64_v8a-204117.apk to working directory Checking if config.en-204117.apk is cached config.en-204117.apk is not cached, downloading now Move config.en-204117.apk to working directory Checking if config.xxhdpi-204117.apk is cached config.xxhdpi-204117.apk is not cached, downloading now Move config.xxhdpi-204117.apk to working directory Checking if vendetta.apk is cached vendetta.apk is cached Move vendetta.apk to working directory Reading AndroidManifest.xml from base-204117.apk

Failed on step PATCH_MANIFESTS

java.lang.RuntimeException: Failed to open archive: InvalidArchive("Could not find central directory end") at com.github.diamondminer88.zip.ZipReader.open(Native Method) at com.github.diamondminer88.zip.ZipReader.(ZipReader.java:39) at dev.beefers.vendetta.manager.ui.viewmodel.installer.InstallerViewModel.install(InstallerViewModel.kt:332) at dev.beefers.vendetta.manager.ui.viewmodel.installer.InstallerViewModel.access$install(InstallerViewModel.kt:42) at dev.beefers.vendetta.manager.ui.viewmodel.installer.InstallerViewModel$install$1.invokeSuspend(Unknown Source:14) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:138) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:112) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:14) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:138) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:112) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:14) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:138) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:112) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:14) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:138) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:112) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:14) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42) at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)