我有一个如下所示的方法
HashMap.doSomething(block:(SpecificTypeOfObject)->Unit){
forEach{ (k,v) ->
(v as? SpecificTypeOfObject)?.let {
block(it)
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我启用 proguard 时,该块被擦除 如何让 proguard 保留它?
java.lang.NoSuchMethodError: No interface method invoke(Ljava/lang/Object;)Ljava/lang/Object; in class Lkt6; or its super classes (declaration of 'kt6' appears in /data/app/com.app.client-_zT-qCWwu71b-k9s0YyjOQ==/base.apk!classes3.dex)
Run Code Online (Sandbox Code Playgroud)
将其添加到混淆器中:
-keep class kotlin.** { *; }
-keep class kotlin.Metadata { *; }
-dontwarn kotlin.**
-keepclassmembers class **$WhenMappings {
<fields>;
}
-keepclassmembers class kotlin.Metadata {
public <methods>;
}
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
}
Run Code Online (Sandbox Code Playgroud)
这使得它保留了所有 kotlins 糖语法
| 归档时间: |
|
| 查看次数: |
258 次 |
| 最近记录: |