When I upgraded Android Studio 4 and android gradle plugin 4.0.0, I encountered with a weird issue. My APK is not deployed to any device or emulator. Let me explain what I find related to problem.
1- When I try run the app by clicking Run icon on Android Studio, build is completed successfully. Then, nothing happens.
2- When I tried to deploy built APK with adb install. It shows the following error.
adb: failed to install app/build/outputs/apk/debug/app-x86-debug.apk: Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: Failed to parse /data/app/vmdl1686600827.tmp/base.apk: Corrupt XML binary file]
I also checked adb logcat in another terminal session. I found this stack trace in regards to parsing apk. I think that it will be helpful for finding a solution.
07-01 19:40:16.215 4454 7052 W ResourceType: Bad XML block: header size 28024 or total size 1702240364 is larger than data size 540
07-01 19:40:16.216 4454 7052 W PackageParser: Failed to parse /data/app/vmdl1686600827.tmp/base.apk
07-01 19:40:16.216 4454 7052 W PackageParser: java.io.FileNotFoundException: Corrupt XML binary file
07-01 19:40:16.216 4454 7052 W PackageParser: at android.content.res.ApkAssets.nativeOpenXml(Native Method)
07-01 19:40:16.216 4454 7052 W PackageParser: at android.content.res.ApkAssets.openXml(ApkAssets.java:152)
07-01 19:40:16.216 4454 7052 W PackageParser: at android.content.pm.PackageParser.parseApkLiteInner(PackageParser.java:1594)
07-01 19:40:16.216 4454 7052 W PackageParser: at android.content.pm.PackageParser.parseApkLite(PackageParser.java:1561)
07-01 19:40:16.216 4454 7052 W PackageParser: at com.android.server.pm.PackageInstallerSession.validateInstallLocked(PackageInstallerSession.java:1116)
07-01 19:40:16.216 4454 7052 W PackageParser: at com.android.server.pm.PackageInstallerSession.sealAndValidateLocked(PackageInstallerSession.java:865)
07-01 19:40:16.216 4454 7052 W PackageParser: at com.android.server.pm.PackageInstallerSession.commit(PackageInstallerSession.java:809)
07-01 19:40:16.216 4454 7052 W PackageParser: at android.content.pm.PackageInstaller$Session.commit(PackageInstaller.java:969)
07-01 19:40:16.216 4454 7052 W PackageParser: at com.android.server.pm.PackageManagerShellCommand.doCommitSession(PackageManagerShellCommand.java:2498)
07-01 19:40:16.216 4454 7052 W PackageParser: at com.android.server.pm.PackageManagerShellCommand.runInstall(PackageManagerShellCommand.java:919)
07-01 19:40:16.216 4454 7052 W PackageParser: at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:158)
07-01 19:40:16.216 4454 7052 W PackageParser: at android.os.ShellCommand.exec(ShellCommand.java:103)
07-01 19:40:16.216 4454 7052 W PackageParser: at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:21328)
07-01 19:40:16.216 4454 7052 W PackageParser: at android.os.Binder.shellCommand(Binder.java:634)
07-01 19:40:16.216 4454 7052 W PackageParser: at android.os.Binder.onTransact(Binder.java:532)
07-01 19:40:16.216 4454 7052 W PackageParser: at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:2821)
07-01 19:40:16.216 4454 7052 W PackageParser: at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:3856)
07-01 19:40:16.216 4454 7052 W PackageParser: at android.os.Binder.execTransact(Binder.java:731)
When I analyze the built APK with APK analyzer, I see that versionName is unknown and merged manifest file is broken and missing.
I guess something is wrong while merging manifest but I could not understand what the exact problem is. Do you have any ideas?
I figured it out somehow. I upgraded 3rd party dependency versions, then problem is fixed. Especially, upgrading from com.admost.sdk:adcolony:4.1.3.a16 to com.admost.sdk:adcolony:4.1.4.a18 fixed my problem. I guess it was not compatible with Gradle plugin 4.0.0. I suggest you check your 3rd party dependencies, too.
In order to find which dependency causes problem, review your merged manifest by analyzing built APK.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With