From 6b2158c6b024af72495185569bc8642f5955b0e1 Mon Sep 17 00:00:00 2001 From: Daniel Leong Date: Tue, 12 Feb 2019 14:57:15 -0500 Subject: [PATCH 1/2] Handle AAR files that don't include a `res` folder This is technically against the AAR spec, but many of Google's own libraries omit this folder. --- src/leiningen/droid/code_gen.clj | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/leiningen/droid/code_gen.clj b/src/leiningen/droid/code_gen.clj index 426cb08..0466a56 100644 --- a/src/leiningen/droid/code_gen.clj +++ b/src/leiningen/droid/code_gen.clj @@ -93,7 +93,9 @@ android-jar (get-sdk-android-jar sdk-path target-version) manifest-file (io/file manifest-path) library-specific (if library ["--non-constant-id"] []) - aar-resources (for [res (get-aar-files project "res")] ["-S" (str res)]) + aar-resources (for [res (get-aar-files project "res") + :when (.exists ^File res)] + ["-S" (str res)]) external-resources (for [res external-res-paths] ["-S" res])] (ensure-paths manifest-path res-path android-jar) (.mkdirs (io/file gen-path)) From 98abadd03e01216d40f65dece390734c2508161a Mon Sep 17 00:00:00 2001 From: Daniel Leong Date: Wed, 13 Feb 2019 09:12:19 -0500 Subject: [PATCH 2/2] Also handle missing res dirs when packaging resources --- src/leiningen/droid/build.clj | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/leiningen/droid/build.clj b/src/leiningen/droid/build.clj index 948ff41..07f22c7 100644 --- a/src/leiningen/droid/build.clj +++ b/src/leiningen/droid/build.clj @@ -218,7 +218,9 @@ assets (mapcat #(when (.exists (io/file %)) ["-A" (str %)]) (concat assets-paths [assets-gen-path] (get-aar-files project "assets"))) - aar-resources (for [res (get-aar-files project "res")] ["-S" res]) + aar-resources (for [res (get-aar-files project "res") + :when (.exists ^File res)] + ["-S" res]) aar-crunched-resources (for [res (get-aar-files project "out-res") :when (.exists ^File res)] ["-S" res])