我想为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
最佳答案
对于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"
}
}
这对我有用,并且针对Canary 10推出了更永久的解决方案。