I added Kotlin 1.2.71 to my Android (Java) application project. The project is configured for Java 8:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Here are the Kotlin changes:
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.71"
...
apply plugin: "kotlin-android"
apply plugin: "kotlin-android-extensions"
apply plugin: "kotlin-kapt"
...
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71"
kapt "org.parceler:parceler:1.1.11"
I noticed that the release build with ProGuard fails. The build process outputs the following information:
Warning: kotlin.internal.jdk8.JDK8PlatformImplementations: can't find referenced
method 'int start(java.lang.String)' in library class java.util.regex.Matcher
Warning: kotlin.internal.jdk8.JDK8PlatformImplementations: can't find referenced
method 'int end(java.lang.String)' in library class java.util.regex.Matcher
Warning: kotlin.internal.jdk8.JDK8PlatformImplementations: can't find referenced
method 'java.lang.String group(java.lang.String)' in library class java.util.regex.Matcher
Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically
referenced class kotlin.internal.JRE8PlatformImplementations
Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically
referenced class kotlin.internal.JRE7PlatformImplementations
Note: kotlin.jvm.internal.Reflection: can't find dynamically
referenced class kotlin.reflect.jvm.internal.ReflectionFactoryImpl
Note: the configuration keeps the entry point
'com.google.android.gms.flags.impl.FlagProviderImpl { void init(com.google.android.gms.dynamic.zzd); }',
but not the descriptor class 'com.google.android.gms.dynamic.zzd'
Note: there were 1 unkept descriptor classes in kept class members.
You should consider explicitly keeping the mentioned classes
(using '-keep').
(http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
Note: there were 3 unresolved dynamic references to classes or interfaces.
You should check if you need to specify additional program jars.
(http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)
Warning: there were 3 unresolved references to library class members.
You probably need to update the library versions.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)
Warning: Exception while processing task java.io.IOException: Please correct the above warnings first.
Thread(Tasks limiter_9): destruction
Kotlin does not require any special ProGuard rules as far as I saw. People recommend (post from 2015) to put just simply rules:
-dontwarn kotlin.**
Is this still the recommended solution?