O Kotlin Multiplatform tem um plug-in do Gradle para configurar o módulo de biblioteca.
O plug-in com.android.kotlin.multiplatform.library
é a substituição
oficial do método anterior de adicionar destinos do Android às bibliotecas KMP
usando o plug-in do Gradle da biblioteca Android comum (com.android.library
).
A abordagem anterior foi descontinuada em favor do plug-in, também conhecido como plug-in Android-KMP. O uso contínuo do plug-in com.android.library
para KMP não será mais compatível com a JetBrains e não vai se beneficiar de atualizações e melhorias futuras.
Para migrar para esse plug-in, consulte a seção Aplicar o plug-in Android-KMP.
Principais recursos e diferenças
O plug-in Android-KMP é feito especificamente para projetos KMP e difere
do plug-in com.android.library
padrão em vários aspectos principais:
Arquitetura de variante única:o plug-in usa uma única variante, removendo o suporte para variações de produto e tipos de build, o que simplifica a configuração e melhora o desempenho do build.
Otimizado para KMP:o plug-in foi projetado para bibliotecas KMP, com foco em código Kotlin compartilhado e interoperabilidade, sem suporte para AIDL, RenderScript e builds nativos específicos do Android.
Testes desativados por padrão:os testes de unidade e de dispositivo (instrumentação) são desativados por padrão para aumentar a velocidade do build. É possível ativá-los se necessário.
Nenhuma extensão do Android de nível superior:a configuração é processada com um bloco
androidLibrary
na DSL KMP do Gradle, mantendo uma estrutura de projeto KMP consistente. Não há um bloqueio de extensão deandroid
de nível superior.Ativar a compilação Java:a compilação Java fica desativada por padrão. Use
withJava()
no blocoandroidLibrary
para ativar. Isso melhora os tempos de build quando a compilação Java não é necessária.
Benefícios do plug-in da biblioteca Android-KMP
O plug-in Android-KMP oferece os seguintes benefícios para projetos KMP:
Melhoria na performance e estabilidade do build:projetado para otimizar as velocidades de build e melhorar a estabilidade em projetos KMP. O foco nos fluxos de trabalho do KMP contribui para um processo de build mais eficiente e confiável.
Integração aprimorada do ambiente de desenvolvimento integrado (IDE):oferece melhor preenchimento de código, navegação, depuração e experiência geral do desenvolvedor ao trabalhar com bibliotecas KMP Android.
Configuração simplificada do projeto:o plug-in simplifica a configuração de projetos KMP ao remover complexidades específicas do Android, como variantes de build. Isso resulta em arquivos de build mais limpos e fáceis de manter. Antes, usar o plug-in
com.android.library
em um projeto KMP podia criar nomes de conjunto de origem confusos, comoandroidAndroidTest
. Essa convenção de nomenclatura era menos intuitiva para desenvolvedores familiarizados com estruturas de projetos KMP padrão.
Aplicar o plug-in Android-KMP a um módulo atual
Para aplicar o plug-in Android-KMP a um módulo de biblioteca KMP atual, siga estas etapas:
Declarar plug-ins no catálogo de versões. Abra o arquivo TOML do catálogo de versões (geralmente
gradle/libs.versions.toml
) e adicione a seção de definições de plug-in:# To check the version number of the latest Kotlin release, go to # https://kotlinlang.org/docs/releases.html [versions] androidGradlePlugin = "8.12.0" kotlin = "KOTLIN_VERSION" [plugins] kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } android-kotlin-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "androidGradlePlugin" }
Aplique a declaração do plug-in no arquivo de build raiz. Abra o arquivo
build.gradle.kts
localizado no diretório raiz do projeto. Adicione os aliases do plug-in ao blocoplugins
usandoapply false
. Isso disponibiliza os aliases do plug-in para todos os subprojetos sem aplicar a lógica do plug-in ao projeto raiz.Kotlin
// Root build.gradle.kts file plugins { alias(libs.plugins.kotlin.multiplatform) apply false // Add the following alias(libs.plugins.android.kotlin.multiplatform.library) apply false }
Groovy
// Root build.gradle file plugins { alias(libs.plugins.kotlin.multiplatform) apply false // Add the following alias(libs.plugins.android.kotlin.multiplatform.library) apply false }
Aplique o plug-in em um arquivo de build do módulo de biblioteca KMP. Abra o arquivo
build.gradle.kts
no módulo da biblioteca KMP e aplique o plug-in na parte de cima do arquivo dentro do blocoplugins
:Kotlin
// Module-specific build.gradle.kts file plugins { alias(libs.plugins.kotlin.multiplatform) // Add the following alias(libs.plugins.android.kotlin.multiplatform.library) }
Groovy
// Module-specific build.gradle file plugins { alias(libs.plugins.kotlin.multiplatform) // Add the following alias(libs.plugins.android.kotlin.multiplatform.library) }
Configure o destino do KMP do Android. Configure o bloco Kotlin Multiplatform (
kotlin
) para definir a plataforma de destino do Android. No blocokotlin
, especifique o destino do Android usandoandroidLibrary
:Kotlin
kotlin { androidLibrary { namespace = "com.example.kmpfirstlib" compileSdk = 33 minSdk = 24 withJava() // enable java compilation support withHostTestBuilder {}.configure {} withDeviceTestBuilder { sourceSetTreeName = "test" } compilations.configureEach { compilerOptions.configure { jvmTarget.set( org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 ) } } } sourceSets { androidMain { dependencies { // Add Android-specific dependencies here } } getByName("androidHostTest") { dependencies { } } getByName("androidDeviceTest") { dependencies { } } } // ... other targets (JVM, iOS, etc.) ... }
Groovy
kotlin { androidLibrary { namespace = "com.example.kmpfirstlib" compileSdk = 33 minSdk = 24 withJava() // enable java compilation support withHostTestBuilder {}.configure {} withDeviceTestBuilder { it.sourceSetTreeName = "test" } compilations.configureEach { compilerOptions.options.jvmTarget.set( org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 ) } } sourceSets { androidMain { dependencies { } } androidHostTest { dependencies { } } androidDeviceTest { dependencies { } } } // ... other targets (JVM, iOS, etc.) ... }
Aplicar mudanças. Depois de aplicar o plug-in e configurar o bloco
kotlin
, sincronize seu projeto do Gradle para aplicar as mudanças.
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Configurar o ambiente
- Adicionar um módulo KMP a um projeto