@@ -37,6 +37,8 @@ import com.highcapable.flexilocale.utils.debug.FError
3737import com.highcapable.flexilocale.utils.debug.FLog
3838import com.highcapable.flexilocale.utils.factory.toFile
3939import org.gradle.api.Project
40+ import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension
41+ import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
4042import org.w3c.dom.Element
4143import org.w3c.dom.Node
4244import java.io.File
@@ -53,6 +55,9 @@ internal object LocaleAnalysisHelper {
5355 /* * Android 的 Library 插件名称 */
5456 private const val LIBRARY_PLUGIN_NAME = " com.android.library"
5557
58+ /* * Kotlin 的 Android 插件名称 */
59+ private const val KT_ANDROID_PLUGIN_NAME = " org.jetbrains.kotlin.android"
60+
5661 /* * I18ns 代码生成实例 */
5762 private val generator = LocaleSourcesGenerator ()
5863
@@ -126,13 +131,15 @@ internal object LocaleAnalysisHelper {
126131 private fun initializePlugins (project : Project ) {
127132 runCatching {
128133 fun BaseExtension.updateSourceDirs () = sourceSets.configureEach { kotlin.srcDir(configs.generateDirPath) }
134+ fun KotlinProjectExtension.updateSourceDirs () = sourceSets.configureEach { kotlin.srcDir(configs.generateDirPath) }
129135 fun BaseVariant.updateResDirectories () = sourceSets.forEach { provide -> provide.resDirectories?.also { resDirectories.addAll(it) } }
130136 project.plugins.withId(APPLICATION_PLUGIN_NAME ) {
131137 project.get<AppExtension >().also { extension ->
132138 namespace = extension.namespace ? : " "
133139 extension.applicationVariants.forEach { variant ->
134140 variant.updateResDirectories()
135141 }; extension.updateSourceDirs()
142+ extension.sourceSets.configureEach { kotlin.srcDir(configs.generateDirPath) }
136143 }
137144 }
138145 project.plugins.withId(LIBRARY_PLUGIN_NAME ) {
@@ -143,6 +150,11 @@ internal object LocaleAnalysisHelper {
143150 }; extension.updateSourceDirs()
144151 }
145152 }
153+ project.plugins.withId(KT_ANDROID_PLUGIN_NAME ) {
154+ project.get<KotlinAndroidProjectExtension >().also { extension ->
155+ extension.updateSourceDirs()
156+ }
157+ }
146158 }.onFailure { FError .make(" Failed to initialize Android Gradle plugin, this may be not or a wrong Android project\n $it " ) }
147159 }
148160
0 commit comments