Android Bundle Error

Hi,

I am trying to create android debug bundle. I am receiving “Failed creating universal APK” error. What should i check?

image

image

Thanks

Are there any spaces in the path where the project is bundled?

Any non-ascii characters in the file path?

No. I choose “C:\Match3” for the path

image

Could you please start Defold.exe from the command line and check the output for clues?

Our try the command line tool bob.jar?

Hi,

I tried from the bob.jar. I got same error. You can find log below.

Defold_bob_build_log.txt (7.7 KB)

Thanks

That is really helpful and quite surprising. Which version of Defold are you using?

1.2.184

image

image

Thank you. I will take a look soon.

The error “Not a valid enum ‘universal’ of flag --mode” comes from the Android bundletool. When checking the code for version 0.14.0 which we use in Defold the value should be converted to uppercase before checking against the enums:

But for some reason it fails in your case…

I wonder if it might be locale related somehow? Which locale/language do you use in Windows?

I am building a test version of bob.jar with mode set to “UNIVERSAL” instead of “universal”. It should be available here in about 30 minutes:

http://d.defold.com/archive/dev/9c264f0e53a27863d4122e943c23c2b44b507111/bob/bob.jar

@uyanik I would be thankful if you could help me by testing this version.

I am using Turkey location and Turkish language in windows.

It worked. Bundle is created. I attached new log file. Thank you.

Defold_bob_build_log2.txt (6.0 KB)

image

2 Likes

Yes, it is indeed a locale problem. Lowercase “universal” converted to uppercase with Turkish locale results in UNİVERSAL (note the İ). Can be verified with this Java program

import java.util.Locale;

public class ToLocaleTest {
    public static void main(String[] args) throws Exception {
        Locale.setDefault(new Locale("tr"));
        String lowerCaseStr = "universal";
    	String upperCaseStr = lowerCaseStr.toUpperCase();
    	System.out.println("Lower case is '" + lowerCaseStr + "' and upper case is '" + upperCaseStr + "'");
    }
}

We will submit the mode in uppercase to bundletool to avoid this.

2 Likes

The change has been merged and should be available in the beta version now.

I tried beta version. It worked.

Thank you for confirming!