diff --git a/src/com/facebook/buck/android/SplitZipStep.java b/src/com/facebook/buck/android/SplitZipStep.java
index 637b77b..a6be727 100644
--- a/src/com/facebook/buck/android/SplitZipStep.java
+++ b/src/com/facebook/buck/android/SplitZipStep.java
@@ -43,6 +43,7 @@
 import java.nio.file.Path;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.regex.Matcher;
@@ -248,8 +249,16 @@
       return Functions.identity();
     }
 
-    Map<String, String> rawProguardMap = ProguardMapping.readClassMapping(
-        context.getProjectFilesystem().readLines(proguardMappingFile.get()));
+    ProjectFilesystem projectFilesystem = context.getProjectFilesystem();
+    Path pathToProguardMappingFile = proguardMappingFile.get();
+    // Proguard doesn't print a mapping when obfuscation is disabled.
+    // TODO(user): Make sure obfuscation was disabled.
+    if (!projectFilesystem.exists(pathToProguardMappingFile.toString())) {
+      return Functions.identity();
+    }
+
+    List<String> lines = projectFilesystem.readLines(pathToProguardMappingFile);
+    Map<String, String> rawProguardMap = ProguardMapping.readClassMapping(lines);
 
     ImmutableMap.Builder<String, String> internalNameBuilder = ImmutableMap.builder();
     for (Map.Entry<String, String> entry : rawProguardMap.entrySet()) {
diff --git a/test/com/facebook/buck/android/SplitZipStepTest.java b/test/com/facebook/buck/android/SplitZipStepTest.java
index 13a5b9c..17e1b4b 100644
--- a/test/com/facebook/buck/android/SplitZipStepTest.java
+++ b/test/com/facebook/buck/android/SplitZipStepTest.java
@@ -191,6 +191,8 @@
     ProjectFilesystem projectFilesystem = EasyMock.createMock(ProjectFilesystem.class);
     EasyMock.expect(projectFilesystem.readLines(primaryDexClassesFile))
         .andReturn(linesInManifestFile);
+    EasyMock.expect(projectFilesystem.exists(proguardMappingFile.toString()))
+        .andReturn(true);
     EasyMock.expect(projectFilesystem.readLines(proguardMappingFile))
         .andReturn(linesInMappingFile);
     ExecutionContext context = EasyMock.createMock(ExecutionContext.class);
