Allow duplocated resources in writing

With the new setup for raw xml files that are also passed as keep xml files we get these duplicated.

Change-Id: Ibe9b47caeb6ea5173602f07d146ee14e9840a418
diff --git a/src/main/java/com/android/tools/r8/utils/AndroidApp.java b/src/main/java/com/android/tools/r8/utils/AndroidApp.java
index adb0992..9ce000f 100644
--- a/src/main/java/com/android/tools/r8/utils/AndroidApp.java
+++ b/src/main/java/com/android/tools/r8/utils/AndroidApp.java
@@ -70,6 +70,7 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.IdentityHashMap;
 import java.util.List;
 import java.util.Map;
@@ -649,14 +650,17 @@
   private void dumpAndroidResourcesProvider(
       AndroidResourceProvider androidResourceProvider, ZipOutputStream out, String name)
       throws IOException, ResourceException {
+    Set<String> seen = new HashSet<>();
     try (ByteArrayOutputStream archiveByteStream = new ByteArrayOutputStream()) {
       try (ZipOutputStream archiveOutputStream = new ZipOutputStream(archiveByteStream)) {
         for (AndroidResourceInput androidResource : androidResourceProvider.getAndroidResources()) {
-          writeToZipStream(
-              archiveOutputStream,
-              androidResource.getPath().location(),
-              androidResource.getByteStream().readAllBytes(),
-              ZipEntry.DEFLATED);
+          if (seen.add(androidResource.getPath().location())) {
+            writeToZipStream(
+                archiveOutputStream,
+                androidResource.getPath().location(),
+                androidResource.getByteStream().readAllBytes(),
+                ZipEntry.DEFLATED);
+          }
         }
       }
       writeToZipStream(out, name, archiveByteStream.toByteArray(), ZipEntry.DEFLATED);