diff --git a/deploy/deployer/src/main/java/com/android/tools/deployer/ApkParser.java b/deploy/deployer/src/main/java/com/android/tools/deployer/ApkParser.java
index 3922ee5..4f0c92b 100644
--- a/deploy/deployer/src/main/java/com/android/tools/deployer/ApkParser.java
+++ b/deploy/deployer/src/main/java/com/android/tools/deployer/ApkParser.java
@@ -37,6 +37,8 @@
     private static final byte[] SIGNATURE_BLOCK_MAGIC = "APK Sig Block 42".getBytes();
     private static final long USHRT_MAX = 65535;
     public static final int EOCD_SIZE = 22;
+    static final String NO_MANIFEST_MSG = "Missing AndroidManifest.xml entry";
+    private static final String NO_MANIFEST_MSG_DETAILS = "in '%s'";
 
     public static class ApkArchiveMap {
         public static final long UNINITIALIZED = -1;
@@ -87,13 +89,19 @@
         ApkDetails apkDetails;
         try (ZipFile zipFile = new ZipFile(path)) {
             ZipEntry manifestEntry = zipFile.getEntry("AndroidManifest.xml");
+            if (manifestEntry == null) {
+                StringBuilder msg = new StringBuilder(NO_MANIFEST_MSG);
+                msg.append(" ");
+                msg.append(String.format(Locale.US, NO_MANIFEST_MSG_DETAILS, path));
+                throw new IOException(msg.toString());
+            }
             InputStream stream = zipFile.getInputStream(manifestEntry);
             apkDetails = parseManifest(stream);
         }
         return apkDetails;
     }
 
-    private Apk parse(String apkPath) throws IOException, DeployerException {
+    Apk parse(String apkPath) throws IOException, DeployerException {
         File file = new File(apkPath);
         String absolutePath = file.getAbsolutePath();
         String digest;
diff --git a/deploy/deployer/src/test/java/com/android/tools/deployer/ApkParserTest.java b/deploy/deployer/src/test/java/com/android/tools/deployer/ApkParserTest.java
index ee33292..bc0c3b8 100644
--- a/deploy/deployer/src/test/java/com/android/tools/deployer/ApkParserTest.java
+++ b/deploy/deployer/src/test/java/com/android/tools/deployer/ApkParserTest.java
@@ -280,4 +280,20 @@
         }
         Assert.assertFalse("Short overflow thrown", exceptionCaught);
     }
+
+    @Test
+    public void testGracefulMissingManifest() throws IOException, DeployerException {
+        Path tempDirectory = Files.createTempDirectory("");
+        try {
+            Path zip = tempDirectory.resolve("testGracefulMissingManifest.zip");
+            int numFiles = 1;
+            int sizePerFile = 1;
+            createZip(numFiles, sizePerFile, zip.toFile());
+            ApkParser parser = new ApkParser();
+            parser.parse(zip.toString());
+            Assert.fail("No exception thrown in apk missing AndroidManifest.xml");
+        } catch (IOException e) {
+            Assert.assertTrue(e.getMessage().startsWith(ApkParser.NO_MANIFEST_MSG));
+        }
+    }
 }
