use*_*643 8 java android kotlin aar
我想为 android 创建一个包含一些顶级函数的 kotlin 库。
我创建了一个 android 库项目。
我添加了一些顶级函数和一些类
// filename TestMethodFirst.kt
fun testMethodFirst() {}
Run Code Online (Sandbox Code Playgroud)
// filename TestClass.kt
class TestClass() {}
Run Code Online (Sandbox Code Playgroud)
我已经使用 ./gradlew build 构建了库
我已将此库作为 aar 库包含到另一个项目中
库中的类已顺利解析并导入。顶级函数尚未解析,因此无法使用。我尝试过手动添加导入,但它也不起作用。当我尝试使用 java 中的顶级函数作为静态方法执行时,它就可以工作了。
这不起作用
// filename Test1.kt
fun test1() {
testMethodFirst()
}
Run Code Online (Sandbox Code Playgroud)
这有效
// filename Test2.kt
fun test1() {
TestClass()
}
Run Code Online (Sandbox Code Playgroud)
这有效
// filename Test3.java
class Test {
void test() {
TestMethodFirstKt.testMethodFirst();
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过使用 AS 4.1 Canary 7 和 AS 3.6.2
附件包含库项目和aar库
对于 Android Studio 4.1 Canary,这是一个已知错误,直到 Canary 9 为止,已在 Canary 10 中修复。根据此评论,尝试添加:
android {
packagingOptions {
excludes -= "/META-INF/*.kotlin_module"
}
}
Run Code Online (Sandbox Code Playgroud)
这对我有用,并且 Canary 10 计划提供更永久的修复。