如何使用Kotlin与Proguard

我正在尝试将Kotlin添加到我的项目中,并且需要使用proguard。 我应该将哪些规则添加到proguard来支持Kotlin?

谢谢

4 Solutions collect form web for “如何使用Kotlin与Proguard”

你不需要做任何特别的事情。 Kotlin开箱即可使用ProGuard。 但使用ProGuard处理应用程序时可能会遇到一些奇怪的错误。 在这种情况下只需添加

-dontwarn kotlin.** 

另外,如果你想在运行时删除空的检查,你可以使用下面的规则:

 -assumenosideeffects class kotlin.jvm.internal.Intrinsics { static void checkParameterIsNotNull(java.lang.Object, java.lang.String); } 

在Kotlin 1.0.2中,EAP proguard在枚举映射时去掉,所以我必须明确地保留它们,所以

 -keepclassmembers class **$WhenMappings { ; } 

对于正确的混淆是足够的。 虽然如果你想要一些性能改进,你也可以添加

 -assumenosideeffects class kotlin.jvm.internal.Intrinsics { static void checkParameterIsNotNull(java.lang.Object, java.lang.String); } 
 -keep class kotlin.** { *; } -keep class kotlin.Metadata { *; } -dontwarn kotlin.** -keepclassmembers class **$WhenMappings { ; } -keepclassmembers class kotlin.Metadata { public ; } -assumenosideeffects class kotlin.jvm.internal.Intrinsics { static void checkParameterIsNotNull(java.lang.Object, java.lang.String); } 

建立gradle:

 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' 

https://kotlinlang.org/docs/tutorials/kotlin-android.html

检查你的gardle你包括

实施“org.jetbrains.kotlin:kotlin-stdlib-jre7:$ kotlin_version”

  • 在kotlin中扩展DataInputStream
  • 当处于调试器模式时,Android Studio 1.5与Kotlin Pluginexception。 如何解决它?
  • 无法在Kotlin中“findViewById”。 获取错误“types推断失败”
  • 简化代码,除了签名以外,是相同的乐趣(可变参数vs地图)
  • 如何使用Netty4ClientHttpRequestFactory为Spring AsyncRestTemplate设置代理?
  • Kotlin为什么不执行自动types转换?
  • 如何从Firebase中的表中同步获取所有行?
  • 我可以省略Kot​​lin中不使用的接口方法吗?
  • Kotlin - 高阶函数成本?
  • Android中的Kotlin“内部”​​可见性修改器
  • 错误从Kotlin资源获取xml
  • Kotlin language will be the best programming language for Android.