Fáb*_*llo 43 android proguard kotlin
我正在尝试将Kotlin添加到我的项目中,我需要使用proguard.我应该向proguard添加哪些规则来支持Kotlin?
谢谢
Mic*_*ael 36
你不需要做任何特别的事情.Kotlin开箱即用ProGuard.但是在使用ProGuard处理应用程序时,您可能会遇到一些奇怪的错误.在这种情况下只需添加
-dontwarn kotlin.**
Run Code Online (Sandbox Code Playgroud)
此外,如果您想在运行时删除空检查,您可以使用以下规则:
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
}
Run Code Online (Sandbox Code Playgroud)
Mis*_*agh 16
-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)
建立gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
Run Code Online (Sandbox Code Playgroud)
https://kotlinlang.org/docs/tutorials/kotlin-android.html
Ade*_*nov 10
在Kotlin 1.0.2中EAP proguard在枚举映射时剥离,所以我必须明确地保留它们,所以
-keepclassmembers class **$WhenMappings {
<fields>;
}
Run Code Online (Sandbox Code Playgroud)
足以进行正确的混淆.虽然如果您想要一些性能改进,您也可以添加
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17951 次 |
| 最近记录: |