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

时间:2018-10-15 13:34:14

标签: android kotlin proguard 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

1 个答案:

答案 0 :(得分:0)

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

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