Creé un nuevo proyecto Kotlin Multiplatform para Andrid e iOS (Biblioteca móvil compartida). El proyecto funciona bien, pero cada vez que ejecuto la sincronización de Gradle , toma más de 5 minutos cada vez. Siempre se atasca en la misma línea:
Gradle: modelo de compilación 'org.jetbrains.kotlin.gradle.KotlinMPPGradleModel' para el proyecto raíz 'MyProject'
¿Por qué tarda tanto cada vez?
Estoy usando Gradle versión 5.1. Aquí está mi archivo build.gradle :
buildscript { ext.kotlin_version = '1.3.11' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.3.0' classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.8.1" } } plugins { id 'kotlin-multiplatform' version '1.3.11' } repositories { google() jcenter() mavenCentral() maven { url 'https://jitpack.io' } } repositories { mavenCentral() } group 'com.example' version '0.0.1' apply plugin: "com.android.library" apply plugin: "com.jfrog.artifactory" apply plugin: 'maven-publish' android { compileSdkVersion 28 defaultConfig { minSdkVersion 21 targetSdkVersion 28 versionCode 1 versionName version testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } compileOptions.incremental = false } kotlin { targets { fromPreset(presets.android, 'android') // This preset is for iPhone emulator // Switch here to presets.iosArm64 to build library for iPhone device fromPreset(presets.iosX64, 'ios') { compilations.main.outputKinds('FRAMEWORK') } } sourceSets { commonMain { dependencies { implementation 'org.jetbrains.kotlin:kotlin-stdlib-common' } } commonTest { dependencies { implementation 'org.jetbrains.kotlin:kotlin-test-common' implementation 'org.jetbrains.kotlin:kotlin-test-annotations-common' } } androidMain { dependencies { implementation 'org.jetbrains.kotlin:kotlin-stdlib' } } androidTest { dependencies { implementation 'org.jetbrains.kotlin:kotlin-test' implementation 'org.jetbrains.kotlin:kotlin-test-junit' } } iosMain { } iosTest { } } } configurations { compileClasspath }Captura de pantalla del problema:
Hay un problema conocido en el que las dependencias de Kotlin/Native se recuperan en cada sincronización, que puede ser lo que estás viendo. Puedes ver los detalles y seguirlo aquí .
Como se publicó para ese problema, hay una solución alternativa que puede probar que consiste esencialmente en agregar { content { excludeGroup("Kotlin/Native" } } a cada elemento en su bloque de repositories .
Como señaló @Brucelet, este es un problema conocido . Para complementar su respuesta, aquí hay una implementación completa de la solución alternativa en Groovy :
repositories { mavenCentral().content() { excludeGroup "Kotlin/Native" } google().content() { excludeGroup "Kotlin/Native" } jcenter() { content { excludeGroup("Kotlin/Native") } } maven { url 'https://jitpack.io' content { excludeGroup("Kotlin/Native") } } } y en Kotlin DSL :
repositories { mavenLocal().apply { content { excludeGroup("Kotlin/Native") } } maven { url = uri("https://dl.bintray.com/soywiz/soywiz") content { includeGroup("com.soywiz") excludeGroup("Kotlin/Native") } } jcenter() { content { excludeGroup("Kotlin/Native") } } google().apply { content { excludeGroup("Kotlin/Native") } } }Intente ejecutar la tarea de Gradle desde las líneas de comando con la opción --parallel.
De lo contrario, siga esta guía para perfilar la ejecución de Gradle https://guides.gradle.org/performance/