         manifest-file (io/file manifest-path)
         backup-file (io/file (str manifest-path ".backup"))
         ;; Only add `assets` directory if it is present.
-        assets (if (.exists (io/file assets-path)) ["-A" assets-path] [])]
+        assets (if (.exists (io/file assets-path)) ["-A" assets-path] [])
+        external-resources (for [res external-res-paths] ["-S" res])]
     (when dev-build
       (io/copy manifest-file backup-file)
       (write-manifest-with-internet-permission manifest-path))
-    (sh aapt-bin "package" "--no-crunch" "-f" "--debug-mode"
+    (sh aapt-bin "package" "--no-crunch" "-f" "--debug-mode" "--auto-add-overlay"
         "-M" manifest-path
         "-S" out-res-path
         "-S" res-path
+        external-resources
         assets
         "-I" android-jar
         "-F" out-res-pkg-path

        deps (unique-jars (resolve-dependencies :dependencies project))]
    (with-process [proc (map str
                             (flatten [dx-bin "--dex" "--output" out-dex-path
                                       compile-path annotations deps]))]
      (.addShutdownHook (Runtime/getRuntime) (Thread. #(.destroy proc))))))

(defn build

  and creating a new one with Internet permission appended to it.
  After the packaging the original manifest file is restored."
  [{{:keys [sdk-path target-version manifest-path assets-path res-path
            out-res-path external-res-paths out-res-pkg-path]} :android
            :as project}]
  (info "Packaging resources...")
  (ensure-paths sdk-path manifest-path res-path)
  (let [aapt-bin (str sdk-path "/platform-tools/aapt")
