From c2a804c050cbd6aa60da7ffaea46c8c99aaf53ad Mon Sep 17 00:00:00 2001 From: yroussel Date: Fri, 26 Oct 2012 15:24:56 +0200 Subject: [PATCH] Allow the merging of more than 2 dex file at a time. (cherry picked from commit f9f7020a0a181ffba3bb9ed123f5bb211a61738e) Change-Id: I2dd875399c2d30d214b6a025ffea995155ff48c1 --- dx/src/com/android/dx/merge/DexMerger.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/dx/src/com/android/dx/merge/DexMerger.java b/dx/src/com/android/dx/merge/DexMerger.java index 0a92e48bb..7566845eb 100644 --- a/dx/src/com/android/dx/merge/DexMerger.java +++ b/dx/src/com/android/dx/merge/DexMerger.java @@ -1102,20 +1102,23 @@ public final class DexMerger { } public static void main(String[] args) throws IOException { - if (args.length != 3) { + if (args.length < 2) { printUsage(); return; } - Dex dexA = new Dex(new File(args[1])); - Dex dexB = new Dex(new File(args[2])); - Dex merged = new DexMerger(dexA, dexB, CollisionPolicy.KEEP_FIRST).merge(); + Dex merged = new Dex(new File(args[1])); + for (int i = 2; i < args.length; i++) { + Dex toMerge = new Dex(new File(args[i])); + merged = new DexMerger(merged, toMerge, CollisionPolicy.KEEP_FIRST).merge(); + } merged.writeTo(new File(args[0])); } private static void printUsage() { - System.out.println("Usage: DexMerger "); + System.out.println("Usage: DexMerger ..."); System.out.println(); - System.out.println("If both a and b define the same classes, a's copy will be used."); + System.out.println( + "If a class is defined in several dex, the class found in the first dex will be used."); } } -- 2.11.0