Support dex 37 for DexMerger

Make DexMerger take the largest dex-file version that is given.

Bug: 27538761
Bug: 27809626

Change-Id: Iddca99477f5edbfc7b9cf3b3deda37fd84e4eeda
diff --git a/dx/src/com/android/dx/merge/DexMerger.java b/dx/src/com/android/dx/merge/DexMerger.java
index 041ebd2..7193a84 100644
--- a/dx/src/com/android/dx/merge/DexMerger.java
+++ b/dx/src/com/android/dx/merge/DexMerger.java
@@ -168,7 +168,7 @@
         contentsOut.header.size = 1;
         contentsOut.fileSize = dexOut.getLength();
         contentsOut.computeSizesFromOffsets();
-        contentsOut.writeHeader(headerOut);
+        contentsOut.writeHeader(headerOut, mergeApiLevels());
         contentsOut.writeMap(mapListOut);
 
         // generate and write the hashes
@@ -357,6 +357,17 @@
         }
     }
 
+    private int mergeApiLevels() {
+        int maxApi = -1;
+        for (int i = 0; i < dexes.length; i++) {
+            int dexMinApi = dexes[i].getTableOfContents().apiLevel;
+            if (maxApi < dexMinApi) {
+                maxApi = dexMinApi;
+            }
+        }
+        return maxApi;
+    }
+
     private void mergeStringIds() {
         new IdMerger<String>(idsDefsOut) {
             @Override TableOfContents.Section getSection(TableOfContents tableOfContents) {