diff --git a/src/main/java/com/android/tools/r8/R8Command.java b/src/main/java/com/android/tools/r8/R8Command.java
index 6a65f79..8c63d06 100644
--- a/src/main/java/com/android/tools/r8/R8Command.java
+++ b/src/main/java/com/android/tools/r8/R8Command.java
@@ -365,7 +365,22 @@
         Function<FeatureSplit.Builder, FeatureSplit> featureSplitGenerator) {
       FeatureSplit featureSplit = featureSplitGenerator.apply(FeatureSplit.builder(getReporter()));
       featureSplits.add(featureSplit);
-      featureSplit.getProgramResourceProviders().forEach(this::addProgramResourceProvider);
+      for (ProgramResourceProvider programResourceProvider : featureSplit
+          .getProgramResourceProviders()) {
+        // Data resources are handled separately and passed directly to the feature split consumer.
+        ProgramResourceProvider providerWithoutDataResources = new ProgramResourceProvider() {
+          @Override
+          public Collection<ProgramResource> getProgramResources() throws ResourceException {
+            return programResourceProvider.getProgramResources();
+          }
+
+          @Override
+          public DataResourceProvider getDataResourceProvider() {
+            return null;
+          }
+        };
+        addProgramResourceProvider(providerWithoutDataResources);
+      }
       return self();
     }
 
diff --git a/src/test/java/com/android/tools/r8/dexsplitter/R8FeatureSplitTest.java b/src/test/java/com/android/tools/r8/dexsplitter/R8FeatureSplitTest.java
index 37b03d6..6f609de 100644
--- a/src/test/java/com/android/tools/r8/dexsplitter/R8FeatureSplitTest.java
+++ b/src/test/java/com/android/tools/r8/dexsplitter/R8FeatureSplitTest.java
@@ -7,6 +7,7 @@
 import static junit.framework.TestCase.assertNotNull;
 import static junit.framework.TestCase.assertTrue;
 import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNull;
 
 import com.android.tools.r8.CompilationFailedException;
 import com.android.tools.r8.DexIndexedConsumer;
@@ -146,6 +147,11 @@
         assertEquals(content, nonJavaFile);
       }
     }
+    ZipFile zipFile = new ZipFile(basePath.toFile());
+    for (String nonJavaFile : nonJavaFiles) {
+      ZipEntry entry = zipFile.getEntry(nonJavaFile);
+      assertNull(entry);
+    }
   }
 
   @Test
@@ -182,6 +188,11 @@
         assertNotEquals(content, nonJavaFile);
       }
     }
+    ZipFile zipFile = new ZipFile(basePath.toFile());
+    for (String nonJavaFile : nonJavaFiles) {
+      ZipEntry entry = zipFile.getEntry(nonJavaFile);
+      assertNull(entry);
+    }
   }
 
   public static class HelloWorld {
