Java I';我无法使用自定义Kotlin库中的顶级函数
我想为android创建一个包含一些顶级函数的kotlin库 我已经创建了一个android库项目 我添加了一些顶级函数和一些类Java I';我无法使用自定义Kotlin库中的顶级函数,java,android,kotlin,aar,Java,Android,Kotlin,Aar,我想为android创建一个包含一些顶级函数的kotlin库 我已经创建了一个android库项目 我添加了一些顶级函数和一些类 // filename TestMethodFirst.kt fun testMethodFirst() {} 我已经用./gradlew build构建了这个库 我已将此库作为aar库包含到另一个项目中 库中的类已解析并顺利导入。顶级函数未解析,因此无法使用。我尝试手动添加导入,但也不起作用。当我尝试使用java中的顶级函数作为静态方法执行时,它就起作用了 这不管
// filename TestMethodFirst.kt
fun testMethodFirst() {}
我已经用./gradlew build构建了这个库
我已将此库作为aar库包含到另一个项目中
库中的类已解析并顺利导入。顶级函数未解析,因此无法使用。我尝试手动添加导入,但也不起作用。当我尝试使用java中的顶级函数作为静态方法执行时,它就起作用了
这不管用
// filename Test1.kt
fun test1() {
testMethodFirst()
}
这很有效
// filename Test2.kt
fun test1() {
TestClass()
}
// filename Test3.java
class Test {
void test() {
TestMethodFirstKt.testMethodFirst();
}
}
这很有效
// filename Test2.kt
fun test1() {
TestClass()
}
// filename Test3.java
class Test {
void test() {
TestMethodFirstKt.testMethodFirst();
}
}
我已经用AS 4.1金丝雀7和AS 3.6.2试过了
附件包含库项目和aar库
对于Android Studio 4.1金丝雀。基于,请尝试添加:
android {
packagingOptions {
excludes -= "/META-INF/*.kotlin_module"
}
}
这对我很有效,金丝雀10有一个更永久的修复方法。我不能使用
-=
操作符,但是这个方法很好excludes=getExcludes()。应用{remove(“/META-INF/*.kotlin_module”)}
@user2875643:感觉像是在使用Gradle KTS;我发布的代码片段适用于经典的基于Groovy的Gradle构建脚本。