code: public void addZipFile(File zipFile) throws ApkCreationException, SealedApkException,
              DuplicateFileException {
          if (mIsSealed) {
              throw new SealedApkException("APK is already sealed");
          }
  
          try {
              verbosePrintln("%s:", zipFile);
  
              // reset the filter with this input.
              mNullFilter.reset(zipFile);
  
              // ask the builder to add the content of the file.
              FileInputStream fis = new FileInputStream(zipFile);
              mBuilder.writeZip(fis, mNullFilter);
              fis.close();
          } catch (DuplicateFileException e) {
              mBuilder.cleanUp();
              throw e;
          } catch (Exception e) {
              mBuilder.cleanUp();
              throw new ApkCreationException(e, "Failed to add %s", zipFile);
          }
      }
docs: Adds the content from a zip file.
  All file keep the same path inside the archive.
  @param zipFile the zip File.
  @throws ApkCreationException if an error occurred
  @throws SealedApkException if the APK is already sealed.
  @throws DuplicateFileException if a file conflicts with another already added to the APK
  at the same location inside the APK archive.