diff --git a/android/license.go b/android/license.go
index ffda58b..7b4aeeb 100644
--- a/android/license.go
+++ b/android/license.go
@@ -19,7 +19,6 @@
 )
 
 type LicenseInfo struct {
-	EffectiveLicenses          []string
 	PackageName                *string
 	EffectiveLicenseText       NamedPaths
 	EffectiveLicenseKinds      []string
@@ -79,23 +78,23 @@
 
 func (m *licenseModule) GenerateAndroidBuildActions(ctx ModuleContext) {
 	// license modules have no licenses, but license_kinds must refer to license_kind modules
-	mergeStringProps(&m.base().commonProperties.Effective_licenses, ctx.ModuleName())
 	namePathProps(&m.base().commonProperties.Effective_license_text, m.properties.Package_name, PathsForModuleSrc(ctx, m.properties.License_text)...)
+	var conditions []string
+	var kinds []string
 	for _, module := range ctx.GetDirectDepsProxyWithTag(licenseKindTag) {
 		if lk, ok := OtherModuleProvider(ctx, module, LicenseKindInfoProvider); ok {
-			mergeStringProps(&m.base().commonProperties.Effective_license_conditions, lk.Conditions...)
-			mergeStringProps(&m.base().commonProperties.Effective_license_kinds, ctx.OtherModuleName(module))
+			conditions = append(conditions, lk.Conditions...)
+			kinds = append(kinds, ctx.OtherModuleName(module))
 		} else {
 			ctx.ModuleErrorf("license_kinds property %q is not a license_kind module", ctx.OtherModuleName(module))
 		}
 	}
 
 	SetProvider(ctx, LicenseInfoProvider, LicenseInfo{
-		EffectiveLicenses:          m.base().commonProperties.Effective_licenses,
 		PackageName:                m.properties.Package_name,
 		EffectiveLicenseText:       m.base().commonProperties.Effective_license_text,
-		EffectiveLicenseKinds:      m.base().commonProperties.Effective_license_kinds,
-		EffectiveLicenseConditions: m.base().commonProperties.Effective_license_conditions,
+		EffectiveLicenseKinds:      SortedUniqueStrings(kinds),
+		EffectiveLicenseConditions: SortedUniqueStrings(conditions),
 	})
 }
 
