小编Ale*_*lex的帖子

Kotlin 多平台:未找到插件 [id: 'com.android.library']

我正在尝试通过 Kotlin 多平台库设置 Android 库。

我收到错误:

Plugin [id: 'com.android.library'] was not found in any of the following sources:

请帮助我指出问题所在以及如何解决此问题。

我的插件设置是这样的(应该是正确的构建脚本):

plugins {
    id("org.jetbrains.kotlin.plugin.serialization").version("1.3.72")
    id("com.android.library")
    id("org.jetbrains.kotlin.multiplatform").version("1.3.72")
    id("com.squareup.sqldelight")
}
Run Code Online (Sandbox Code Playgroud)

当我用以下替换它时

plugins {
    id("org.jetbrains.kotlin.multiplatform").version("1.3.72")
    id("org.jetbrains.kotlin.plugin.serialization").version("1.3.72")
}

apply plugin: 'com.android.library'
apply plugin: 'com.squareup.sqldelight'
Run Code Online (Sandbox Code Playgroud)

它工作正常。我不确定是什么导致了这个问题。

以下是完整的 build.gradle:

buildscript {
    repositories {
        mavenCentral()
        jcenter()
        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.plugin.serialization").version("1.3.72")
    id("com.android.library")
    id("org.jetbrains.kotlin.multiplatform").version("1.3.72")
    id("com.squareup.sqldelight")
}

repositories {
    mavenCentral()
    jcenter()
    google()
}

group 'com.jolas.sdk.kn.newsycore'
version '0.0.1'

android {
    compileSdkVersion 29
    buildToolsVersion …
Run Code Online (Sandbox Code Playgroud)

android gradle android-library gradle-plugin kotlin-multiplatform

6
推荐指数
2
解决办法
2429
查看次数

Kotlin-Swift 互操作问题:当从 Swift Code for Release 版本作为 NSMutableArray 传递时,ArrayList 的计数值错误

我们假设一个 KMP 项目设置为具有示例 iOS 应用程序,其中添加了 KMP 模块的输出框架作为依赖项。

我在 KMP 模块中有一个函数sampleFuncForStringArrayList(names: ArrayList<String>),可以打印计数、迭代和打印 ArrayList 项目。

当我从 iOS 示例应用程序调用此函数时,我收到索引越界异常,因为 NSMutableArray在 iOS 应用程序环境中count2,而在 KMP 模块中作为 ArrayList 接收时count为24576 。

此问题仅发生在releaseFramework 中。debugFramework工作正常。

//Swift
let namesStringList = NSMutableArray(array: ["Alice", "Bob"])
print("NSMutableArray COUNT : \(namesStringList.count)")
Main().sampleFuncForStringArrayList(names: namesStringList)


//Kotlin
public class Main {
    public fun sampleFuncForStringArrayList(names: ArrayList<String>){
        println("names.isNullOrEmpty() ${names.isNullOrEmpty()}")
        println("names.count ${names.count()}")
        names.forEach {
            println("Hello $it")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

预期输出

NSMutableArray COUNT : 2
names.isNullOrEmpty() false
names.count 2
Hello …
Run Code Online (Sandbox Code Playgroud)

interop kotlin swift kotlin-native kotlin-multiplatform

4
推荐指数
1
解决办法
850
查看次数