diff --git a/tools/as_utils.py b/tools/as_utils.py
index 83d0d15..fa81ac4 100644
--- a/tools/as_utils.py
+++ b/tools/as_utils.py
@@ -121,6 +121,15 @@
       or 'transformClassesWithDexBuilderFor' in x
       or 'transformDexArchiveWithDexMergerFor' in x)
 
+def ListFiles(directory, predicate=None):
+  files = []
+  for root, directories, filenames in os.walk(directory):
+    for filename in filenames:
+      file = os.path.join(root, filename)
+      if predicate is None or predicate(file):
+        files.append(file)
+  return files
+
 def SetPrintConfigurationDirective(app, checkout_dir, destination):
   proguard_config_file = FindProguardConfigurationFile(app, checkout_dir)
   with open(proguard_config_file) as f:
diff --git a/tools/run_on_as_app.py b/tools/run_on_as_app.py
index 23d790a..9ef28a8 100755
--- a/tools/run_on_as_app.py
+++ b/tools/run_on_as_app.py
@@ -642,8 +642,8 @@
       else apk_base_name + '.apk')
   unsigned_apk_name = apk_base_name + '-unsigned.apk'
 
-  build_dir = app.build_dir
-  build_output_apks = os.path.join(app.module, build_dir, 'outputs', 'apk')
+  build_dir = os.path.join(app.module, app.build_dir)
+  build_output_apks = os.path.join(build_dir, 'outputs', 'apk')
   if app.flavor:
     build_output_apks = os.path.join(build_output_apks, app.flavor, 'release')
   else:
@@ -652,6 +652,12 @@
   signed_apk = os.path.join(build_output_apks, signed_apk_name)
   unsigned_apk = os.path.join(build_output_apks, unsigned_apk_name)
 
+  assert os.path.isfile(signed_apk) or os.path.isfile(unsigned_apk), (
+      "Expected a file to be present at {} or {}, found: {}".format(
+          signed_apk, unsigned_apk,
+          ', '.join(
+              as_utils.ListFiles(build_dir, lambda x : x.endswith('.apk')))))
+
   if options.sign_apks and not os.path.isfile(signed_apk):
     assert os.path.isfile(unsigned_apk)
     if options.sign_apks:
