Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java I';我无法使用自定义Kotlin库中的顶级函数_Java_Android_Kotlin_Aar - Fatal编程技术网

Java I';我无法使用自定义Kotlin库中的顶级函数

Java I';我无法使用自定义Kotlin库中的顶级函数,java,android,kotlin,aar,Java,Android,Kotlin,Aar,我想为android创建一个包含一些顶级函数的kotlin库 我已经创建了一个android库项目 我添加了一些顶级函数和一些类 // filename TestMethodFirst.kt fun testMethodFirst() {} 我已经用./gradlew build构建了这个库 我已将此库作为aar库包含到另一个项目中 库中的类已解析并顺利导入。顶级函数未解析,因此无法使用。我尝试手动添加导入,但也不起作用。当我尝试使用java中的顶级函数作为静态方法执行时,它就起作用了 这不管

我想为android创建一个包含一些顶级函数的kotlin库

我已经创建了一个android库项目

我添加了一些顶级函数和一些类

// 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构建脚本。