Godot: Android export with custom boot splash image using same file as the icon

Created on 5 Feb 2018  路  4Comments  路  Source: godotengine/godot

Godot version: 3.0 (from the web)

OS/device including version: KDE Neon (based on Ubuntu 16.04), kernel 4.13

Issue description:
I wanted to set a custom splash screen for my game in godot 3.0, but then the android export didn't work. Just after it starts signing the release APK, it says:

'jarsigner' returned with error #1

If the custom boot splash image is unset, the export works.

Steps to reproduce:

  1. Create project and set custom boot splash image:

    • Project > Project Settings > Boot Splash > Image

  2. Create android export template

    • Project > Export > Add... > Android

    • Fill Keystore user and password

  3. Click on Export Project.

Minimal reproduction project:

Boot.zip

The project comes with a release.keystore with user test and password pass1234.

bug confirmed hero wanted! junior job android porting

Most helpful comment

Registered to confirm the bug, and also to give some details :

  • can reproduce the bug on my Ubuntu 17.04 64b with the "Boot" project
  • can NOT reproduce it if I duplicate the icon.png ressource and use the new image as splash screen (looks like the bug is activated if the project uses the same image for icon and splash)
  • can NOT reproduce it on Windows 7 SP1 64

All 4 comments

Registered to confirm the bug, and also to give some details :

  • can reproduce the bug on my Ubuntu 17.04 64b with the "Boot" project
  • can NOT reproduce it if I duplicate the icon.png ressource and use the new image as splash screen (looks like the bug is activated if the project uses the same image for icon and splash)
  • can NOT reproduce it on Windows 7 SP1 64

can NOT reproduce it if I duplicate the icon.png ressource and use the new image as splash screen (looks like the bug is activated if the project uses the same image for icon and splash)

Indeed, the problem is:

  signing: assets/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex
  signing: assets/icon.png.import
  signing: assets/icon.png
  signing: assets/icon.png
jarsigner: unable to sign jar: java.util.zip.ZipException: duplicate entry: assets/icon.png
ERROR: _export_project_to_path: Failed to export project
   At: editor/project_export.cpp:748.

Well, TY akien-mga for pointing to the right direction, I just discovered that in fact on my Win7 Godot does not export the APK due to this bug, but it does not report the error like on linux (no error message). It looks like the export is finished okay, only in the command line window there is :

  signing: assets/icon.png.import
  signing: assets/icon.png
  signing: assets/icon.png
jarsigner: unable to sign jar: java.util.zip.ZipException: duplicate entry: asse
ts/icon.png
running cmdline: "C:/Program Files/Java/jdk1.8.0_112/bin/jarsigner.exe" "-verify
" "-keystore" "C:/Users/armands/Documents/Godot/Boot/Boot/release.keystore" "C:\
Users\armands\AppData\Local\Temp/Godot/tmpexport-unaligned.apk" "-verbose"

  s = signature was verified
  m = entry is listed in manifest
  k = at least one certificate was found in keystore
  i = at least one certificate was found in identity scope

no manifest.
jar is unsigned.

and the APK is not created.

EDIT:
if the APK is already existing, nothing happens, no error message, APK not overwritten
if it does not exist, the following error message is displayed
image

I suppose the fix is just checking that the file is the same and not exporting it twice to the zip here:
https://github.com/godotengine/godot/blob/master/platform/android/export/export.cpp

Was this page helpful?
0 / 5 - 0 ratings