google / bundletool

Bundletool is a command-line tool to manipulate Android App Bundles
https://g.co/androidappbundle
Apache License 2.0
3.54k stars 386 forks source link

Files with a same name in different packs, not supported #268

Closed AbreuRodrigo closed 2 years ago

AbreuRodrigo commented 2 years ago

BT:1.8.2] Error: Modules 'audio_common' and 'audio_enUS' contain entry 'assets/assetpack/XXXX.bnk' with different content. com.android.tools.build.bundletool.model.exceptions.InvalidBundleException: Modules 'audio_common' and 'audio_enUS' contain entry 'assets/assetpack/XXXX.bnk' with different content. at com.android.tools.build.bundletool.model.exceptions.UserExceptionBuilder.build(UserExceptionBuilder.java:58) at com.android.tools.build.bundletool.validation.EntryClashValidator.checkEqualEntries(EntryClashValidator.java:98) at com.android.tools.build.bundletool.validation.EntryClashValidator.checkEntryClash(EntryClashValidator.java:87) at com.android.tools.build.bundletool.validation.EntryClashValidator.lambda$checkEntryClashes$0(EntryClashValidator.java:64) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) at com.google.common.collect.CollectSpliterators$1WithCharacteristics.lambda$forEachRemaining$1(CollectSpliterators.java:67) at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:110) at com.google.common.collect.CollectSpliterators$1WithCharacteristics.forEachRemaining(CollectSpliterators.java:67) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at com.android.tools.build.bundletool.validation.EntryClashValidator.checkEntryClashes(EntryClashValidator.java:60) at com.android.tools.build.bundletool.validation.EntryClashValidator.validateAllModules(EntryClashValidator.java:51) at com.android.tools.build.bundletool.validation.ValidatorRunner.validateBundleModulesUsingSubValidator(ValidatorRunner.java:75) at com.android.tools.build.bundletool.validation.ValidatorRunner.lambda$validateBundleModules$4(ValidatorRunner.java:64) at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:406) at com.android.tools.build.bundletool.validation.ValidatorRunner.validateBundleModules(ValidatorRunner.java:63) at com.android.tools.build.bundletool.validation.BundleModulesValidator.validate(BundleModulesValidator.java:82) at com.android.tools.build.bundletool.commands.BuildBundleCommand.execute(BuildBundleCommand.java:231) at com.android.tools.build.bundletool.BundleToolMain.main(BundleToolMain.java:73) at com.android.tools.build.bundletool.BundleToolMain.main(BundleToolMain.java:49)

Bundletool version(s) affected Version: 1.8.2

ymakhno commented 2 years ago

This is not a bug, it works as expected. You can't have assets with the same name but different content. Exception informs you about this.

AbreuRodrigo commented 2 years ago

Ahh cool, yeah that was my second thinking, and there is already a discussion about changing the names in the company. Thanks for confirming @ymakhno, appreciated 👍