diff --git a/common/variable.go b/common/variable.go
index 4f159c5..fa40661 100644
--- a/common/variable.go
+++ b/common/variable.go
@@ -163,9 +163,7 @@
 func (a *AndroidModuleBase) setVariableProperties(ctx AndroidBottomUpMutatorContext,
 	prefix string, productVariablePropertyValue reflect.Value, variableValue interface{}) {
 
-	if variableValue != nil {
-		printfIntoProperties(productVariablePropertyValue, variableValue)
-	}
+	printfIntoProperties(productVariablePropertyValue, variableValue)
 
 	err := proptools.AppendMatchingProperties(a.generalProperties,
 		productVariablePropertyValue.Addr().Interface(), nil)
@@ -181,6 +179,13 @@
 func printfIntoProperties(productVariablePropertyValue reflect.Value, variableValue interface{}) {
 	for i := 0; i < productVariablePropertyValue.NumField(); i++ {
 		propertyValue := productVariablePropertyValue.Field(i)
+		kind := propertyValue.Kind()
+		if kind == reflect.Ptr {
+			if propertyValue.IsNil() {
+				continue
+			}
+			propertyValue = propertyValue.Elem()
+		}
 		switch propertyValue.Kind() {
 		case reflect.String:
 			printfIntoProperty(propertyValue, variableValue)
@@ -188,6 +193,8 @@
 			for j := 0; j < propertyValue.Len(); j++ {
 				printfIntoProperty(propertyValue.Index(j), variableValue)
 			}
+		case reflect.Bool:
+			// Nothing
 		case reflect.Struct:
 			printfIntoProperties(propertyValue, variableValue)
 		default:
