Котлинский MPP - не может разрешить Stetho Interceptor - PullRequest
0 голосов
/ 23 декабря 2019

Я впервые пытаюсь построить MPP Kotlin, используя файл Grad Kotlin DSL. Проблема довольно проста, но я пытался все, что мог придумать, чтобы ее исправить: общий код Android не может разрешить перехватчик Stetho

Снимок экрана проблемы

Мой build.gradle.kts

import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget

plugins {
    kotlin("multiplatform")
    id("kotlinx-serialization")
}

kotlin {
    //select iOS target platform depending on the Xcode environment variables
    val iOSTarget: (String, KotlinNativeTarget.() -> Unit) -> KotlinNativeTarget =
        if (System.getenv("SDK_NAME")?.startsWith("iphoneos") == true)
            ::iosArm64
        else
            ::iosX64

    iOSTarget("ios") {
        binaries {
            framework {
                baseName = "SharedCode"
            }
        }
    }

    jvm("android")

    sourceSets["commonMain"].dependencies {
        implementation("org.jetbrains.kotlin:kotlin-stdlib-common")
        implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.3")
        implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:0.14.0")

        // HTTP
        implementation("io.ktor:ktor-client-core:1.3.0-rc")
        implementation("io.ktor:ktor-client-json:1.3.0-rc")
        implementation("io.ktor:ktor-client-serialization:1.3.0-rc")
    }

    sourceSets["androidMain"].dependencies {
        implementation("org.jetbrains.kotlin:kotlin-stdlib")
        implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3")
        implementation("io.ktor:ktor-client-android:1.3.0-rc")
        implementation("io.ktor:ktor-client-json-jvm:1.3.0-rc")
        implementation("io.ktor:ktor-client-serialization-jvm:1.3.0-rc")
        implementation("io.ktor:ktor-client-okhttp:1.3.0-rc")
        implementation("com.squareup.okhttp3:logging-interceptor:4.0.1")
        implementation( "com.facebook.stetho:stetho-okhttp3:1.5.1")
    }

Большое спасибо за вашу помощь!

РЕДАКТИРОВАТЬ:

Итак, я обнаружил, что когда я заменяю

jvm ("android")

с

android ()

Стето-перехватчик может быть импортирован, но ключевые слова "ожидаемый" и "фактический" неправильно связаныAndroid-студия для iOS:

«Фактическое свойство ... не имеет соответствующего ожидаемого объявления», когда я нахожу фактическое объявление для iOS

Когда я использую оба

jvm ("android ") android ()

Я получаю ошибку gradle:

" Цель 'android' уже существует, но она не была создана с предустановкой 'jvm'. Чтобы ее настроить, откройтепо имени в kotlin.targets или используйте предустановленную функцию «android». "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...