Prevent segfault for missing import case

Test: add invalid import and then m nothing(with and withouth allow
missing dep flag)
Bug: 189160954

Change-Id: Iae889799ee6dd6ad14be971a7a0d8cce1bb8152d
diff --git a/build/aidl_interface_backends.go b/build/aidl_interface_backends.go
index 49ce151..b085d67 100644
--- a/build/aidl_interface_backends.go
+++ b/build/aidl_interface_backends.go
@@ -427,20 +427,24 @@
 	i := lookupInterface(g.properties.AidlInterfaceName, ctx.Config())
 	version := g.properties.Version
 	lang := g.properties.Lang
-	if g.properties.Lang == langJava {
-		imports := make([]string, len(i.properties.Imports))
-		for idx, anImport := range i.properties.Imports {
-			imports[idx] = i.getImportWithVersion(version, anImport, ctx.Config()) + "-" + langJava
+	imports := make([]string, len(i.properties.Imports))
+	for idx, anImport := range i.properties.Imports {
+		importModule, _ := parseModuleWithVersion(anImport)
+		if lookupInterface(importModule, ctx.Config()) == nil {
+			if ctx.Config().AllowMissingDependencies() {
+				continue
+			}
+			panic(anImport + " doesn't exist, it should be checked in 'checkImports' mutator.")
 		}
+		imports[idx] = i.getImportWithVersion(version, anImport, ctx.Config()) + "-" + lang
+	}
+
+	if g.properties.Lang == langJava {
 		if p, ok := g.properties.ModuleProperties[0].(*javaProperties); ok {
 			p.Static_libs = imports
 		}
 		ctx.CreateModule(java.LibraryFactory, g.properties.ModuleProperties...)
 	} else {
-		imports := make([]string, len(i.properties.Imports))
-		for idx, anImport := range i.properties.Imports {
-			imports[idx] = i.getImportWithVersion(version, anImport, ctx.Config()) + "-" + lang
-		}
 		if p, ok := g.properties.ModuleProperties[0].(*ccProperties); ok {
 			p.Shared_libs = append(p.Shared_libs, imports...)
 			p.Export_shared_lib_headers = append(p.Export_shared_lib_headers, imports...)