Ошибка при добавлении мультиплатформенного модуля Kotlin в качестве зависимости: «Проект Android без вариантов сборки и не может быть построен». - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь добавить библиотеку Kotlin -Multiplatform в качестве зависимости к Android Project. Я получаю следующую ошибку:

ОШИБКА: модуль my-core является проектом Android без вариантов сборки и не может быть собран. Исправьте конфигурацию модуля в файле build.gradle и снова синхронизируйте c проект.

build.gradle для 'my-core' Kotlin -Multiplatform library выглядит следующим образом:

buildscript {
    repositories {
        google()
    }
    dependencies {
        classpath 'com.squareup.sqldelight:gradle-plugin:1.3.0'
        classpath 'com.android.tools.build:gradle:3.6.3'
    }
}

plugins {
    id 'org.jetbrains.kotlin.multiplatform' version '1.3.72'
    id 'org.jetbrains.kotlin.plugin.serialization' version '1.3.72'
}
repositories {
    mavenCentral()
    jcenter()
    google()
}

def ktor_version = '1.3.2'
def sqldeligh_version = '1.3.0'

group 'com.zoho.im.core'
version '0.0.1'

apply plugin: 'com.squareup.sqldelight'
apply plugin: 'maven-publish'
apply plugin: 'com.android.library'

android {
    compileSdkVersion(29)
    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 29
        versionCode = 1
        versionName = "0.0.1"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

        //This is for MultiplatformSettings
        debug {
            // MPP libraries don't currently get this resolution automatically
            matchingFallbacks = ['release']
        }
    }
}

kotlin {
    android()
    // This is for iPhone simulator
    // Switch here to iosArm64 (or iosArm32) to build library for iPhone device
    iosX64("ios") {
        binaries {
            framework()
        }
    }
    sourceSets {
        commonMain {
            dependencies {
                implementation kotlin('stdlib-common')
                implementation "io.ktor:ktor-client-core:$ktor_version"
                implementation "io.ktor:ktor-client-serialization-native:$ktor_version"
            }
        }
        commonTest {
            dependencies {
                implementation kotlin('test-common')
                implementation kotlin('test-annotations-common')
            }
        }
        androidMain {
            dependencies {
                implementation kotlin('stdlib')
                implementation "io.ktor:ktor-client-okhttp:$ktor_version"
                implementation "io.ktor:ktor-client-serialization-jvm:$ktor_version"
                implementation "com.squareup.sqldelight:android-driver:$sqldeligh_version"
            }
        }
        iosMain {
            dependencies {
                implementation "io.ktor:ktor-client-ios:$ktor_version"
                implementation "io.ktor:ktor-client-serialization-native:$ktor_version"
                implementation "com.squareup.sqldelight:native-driver:$sqldeligh_version"
            }
        }
    }
}

sqldelight {
    IMDatabase {
        packageName = "com.harley.core"
    }
}

configurations {
    compileClasspath
}

Проект android, в который я импортировал, представляет собой простой проект fre sh. Пожалуйста, посоветуйте

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Это может быть потому, что у вас есть собственная зависимость в исходном наборе commonMain: io.ktor:ktor-client-serialization-native:$ktor_version Система метаданных не сможет найти подходящую цель для этой зависимости, что может привести к демонстрируемой вами ошибке. Это всего лишь предположение.

0 голосов
/ 27 мая 2020

Замена, io.ktor:ktor-client-serialization-native:$ktor_version на io.ktor:ktor-client-serialization:$ktor_version устраняет проблему, и создается файл aar.

Боковое примечание: этот файл .aar не содержит зависимостей androidMain. Мне пришлось вручную добавить эти зависимости (io.ktor: ktor-client-okhttp: $ ktor_version, io.ktor: ktor-client-serialization-jvm: $ ktor_version, com.squareup.sqldelight: android -driver: $ sqldeligh_version ) к потребляющему android проекту.

...