3

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?

sembozdemir
  • 4,137
  • 3
  • 21
  • 30

1 Answers1

1

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.

sembozdemir
  • 4,137
  • 3
  • 21
  • 30
  • Glad you fixed your problem! My merged manifest looks fine though, my next step will be to analyze the apks file by file in android studio I guess.. – yennsarah Jul 16 '20 at 12:25