如何在proguard中保持包级kotlin函数?

Man*_*ela 5 android proguard kotlin android-proguard

我在库中将程序包级函数声明为实用程序,我想在主应用程序中使用它。

我的问题是我无法使用proguard阻止代码混淆(因此无法在我的主应用程序中使用它)。

我的文件it.blabla.util.Extensions.kt

fun foo(context: Context, action: String) { ... } 我已经尝试使用以下方法将其保留在proguard中:

-keep class it.blablabla.util.UtilPackage.** { *; }

要么

-keep class it.blablabla.util.** { *; }

但是这些都不起作用。

在我的应用程序中,我尝试如下使用foo:

foo(applicationContext, "test")

但是我找不到正确的导入内容,无法通过aar模块在我的应用中显示foo。我不断收到以下编译错误:

未解决的参考:foo

mbo*_*nin 1

您很可能必须保留类以及元数据(proguard doc):

-keep class it.blablabla.util.ExtensionsKt {
  *;
}
-keepkotlinmetadata
Run Code Online (Sandbox Code Playgroud)