Sto cercando di aggiungere Kotlin al mio progetto e ho bisogno di usare proguard. Quali regole dovrei aggiungere a proguard per supportare Kotlin?Come utilizzare Kotlin con Proguard
Grazie
Sto cercando di aggiungere Kotlin al mio progetto e ho bisogno di usare proguard. Quali regole dovrei aggiungere a proguard per supportare Kotlin?Come utilizzare Kotlin con Proguard
Grazie
Non è necessario fare nulla di speciale. Kotlin funziona immediatamente con ProGuard. Ma potresti incontrare strani errori durante l'elaborazione della tua applicazione con ProGuard. In questo caso è sufficiente aggiungere
-dontwarn kotlin.**
Inoltre, se si vuole sbarazzarsi di controlli nulli in fase di esecuzione è possibile utilizzare la seguente regola:
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
}
In Kotlin 1.0.2 EAP Proguard strisce quando mappature per enumeri, quindi devo tenerli esplicitamente, quindi
-keepclassmembers class **$WhenMappings {
<fields>;
}
è sufficiente per la corretta offuscazione. Anche se si desidera che alcuni miglioramenti delle prestazioni, è anche possibile aggiungere
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
}
check-in vostro gardle fatto di includere
implementazione "org.jetbrains.kotlin: Kotlin-stdlib-jre7: $ kotlin_version"
-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);
}
accumulo Gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
È possibile configurare il file build.gradle per l'implementazione proguard. Può essere a livello di modulo o di progetto.
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
La configurazione mostrata è per il livello di debug, ma si può scrivere la propria costruire sapori come indicato qui sotto buildTypes interna:
myproductionbuild{
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
Per ulteriori infromation clicca qui http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Running-ProGuard
Si prega di fornire ulteriori informazioni, per esempio quali regole hai provato, come funziona, quali errori hai ottenuto, ecc. –