diff --git a/common/module.go b/common/module.go
index b19b6d1..e8c4a87 100644
--- a/common/module.go
+++ b/common/module.go
@@ -55,7 +55,7 @@
 	androidBaseContext
 
 	ExpandSources(srcFiles, excludes []string) []string
-	Glob(globPattern string, excludes []string) []string
+	Glob(outDir, globPattern string, excludes []string) []string
 
 	InstallFile(installPath, srcPath string, deps ...string) string
 	InstallFileName(installPath, name, srcPath string, deps ...string) string
@@ -504,7 +504,7 @@
 	globbedSrcFiles := make([]string, 0, len(srcFiles))
 	for _, s := range srcFiles {
 		if glob.IsGlob(s) {
-			globbedSrcFiles = append(globbedSrcFiles, ctx.Glob(s, excludes)...)
+			globbedSrcFiles = append(globbedSrcFiles, ctx.Glob("src_glob", s, excludes)...)
 		} else {
 			globbedSrcFiles = append(globbedSrcFiles, s)
 		}
@@ -513,8 +513,8 @@
 	return globbedSrcFiles
 }
 
-func (ctx *androidModuleContext) Glob(globPattern string, excludes []string) []string {
-	ret, err := Glob(ctx, ModuleOutDir(ctx), globPattern, excludes)
+func (ctx *androidModuleContext) Glob(outDir, globPattern string, excludes []string) []string {
+	ret, err := Glob(ctx, filepath.Join(ModuleOutDir(ctx), outDir), globPattern, excludes)
 	if err != nil {
 		ctx.ModuleErrorf("glob: %s", err.Error())
 	}
diff --git a/java/app.go b/java/app.go
index e6851b5..a6e651d 100644
--- a/java/app.go
+++ b/java/app.go
@@ -246,14 +246,14 @@
 	var aaptDeps []string
 	var hasResources bool
 	for _, d := range resourceDirs {
-		newDeps := ctx.Glob(filepath.Join(d, "**/*"), aaptIgnoreFilenames)
+		newDeps := ctx.Glob("app_resources", filepath.Join(d, "**/*"), aaptIgnoreFilenames)
 		aaptDeps = append(aaptDeps, newDeps...)
 		if len(newDeps) > 0 {
 			hasResources = true
 		}
 	}
 	for _, d := range assetDirs {
-		newDeps := ctx.Glob(filepath.Join(d, "**/*"), aaptIgnoreFilenames)
+		newDeps := ctx.Glob("app_assets", filepath.Join(d, "**/*"), aaptIgnoreFilenames)
 		aaptDeps = append(aaptDeps, newDeps...)
 	}
 
diff --git a/java/resources.go b/java/resources.go
index dfdbeb5..995e60d 100644
--- a/java/resources.go
+++ b/java/resources.go
@@ -54,7 +54,7 @@
 			continue
 		}
 		resourceDir := filepath.Join(common.ModuleSrcDir(ctx), resourceDir)
-		dirs := ctx.Glob(resourceDir, nil)
+		dirs := ctx.Glob("java_resources", resourceDir, nil)
 		for _, dir := range dirs {
 			fileListFile := filepath.Join(common.ModuleOutDir(ctx), "res", dir, "resources.list")
 			depFile := fileListFile + ".d"
