我无法使用自定义Kotlin库中的顶级功能

问题描述 投票:3回答:1

我想为android创建一个kotlin库,其中包含一些顶级功能。

我创建了一个android库项目。

我添加了一些顶级功能和一些类

// filename TestMethodFirst.kt
fun testMethodFirst() {}
// filename TestClass.kt
class TestClass() {}

我已经使用./gradlew构建来构建库

我将该库作为aar库包含在另一个项目中

该库中的类已解决,并且可以顺利导入。顶级功能尚未解析,因此无法使用。我尝试手动添加导入,但也无法正常工作。当我尝试使用Java中的顶级函数作为静态方法执行时,它就在工作。

这不起作用

// filename Test1.kt
fun test1() {
    testMethodFirst()
}

此作品

// filename Test2.kt
fun test1() {
    TestClass()
}

此作品

// filename Test3.java
class Test {
    void test() {
        TestMethodFirstKt.testMethodFirst();
    }
}

我已经在AS 4.1 Canary 7和AS 3.6.2中进行了尝试

附件包含库项目和aar库

Project

Generated aar

java android kotlin aar
1个回答
2
投票

对于Android Studio 4.1 Canary,this is a known bug, until Canary 9, fixed in Canary 10。根据this comment,尝试添加:

android {
    packagingOptions {
        excludes -= "/META-INF/*.kotlin_module"
    }
}

这对我有用,并且针对金丝雀10定了更永久的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.