diff --git a/app/build.gradle b/app/build.gradle index 77714c4..69e528c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,6 +32,7 @@ android { } buildFeatures { viewBinding true + buildConfig = true } flavorDimensions 'network' productFlavors { @@ -79,14 +80,15 @@ android { signingConfig signingConfigs.placeholder } } + def javaVersion = JavaVersion.toVersion(project.property("ANDROID_JVM_TARGET")) compileOptions { // enable support for new language APIs but also fix the issue with zxing on API < 24 coreLibraryDesugaringEnabled true - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility javaVersion + targetCompatibility javaVersion } kotlinOptions { - jvmTarget = "1.8" + jvmTarget = javaVersion.toString() freeCompilerArgs += "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" freeCompilerArgs += "-opt-in=kotlin.time.ExperimentalTime" // freeCompilerArgs += "-Xopt-in=kotlinx.coroutines.ObsoleteCoroutinesApi" diff --git a/app/src/main/java/cash/z/ecc/android/feedback/Report.kt b/app/src/main/java/cash/z/ecc/android/feedback/Report.kt index 9677877..da92e6f 100644 --- a/app/src/main/java/cash/z/ecc/android/feedback/Report.kt +++ b/app/src/main/java/cash/z/ecc/android/feedback/Report.kt @@ -131,7 +131,7 @@ object Report { SEND_FINAL("send.final"), SEND_MEMO("send.memo"); - override val key = "screen.${id ?: name.toLowerCase()}" + override val key = "screen.${id ?: name.lowercase()}" override fun toString() = "viewed the ${key.substring(7).replace('.', ' ')} screen" } diff --git a/app/src/main/java/cash/z/ecc/android/ui/setup/BackupFragment.kt b/app/src/main/java/cash/z/ecc/android/ui/setup/BackupFragment.kt index 162a6d9..04051da 100644 --- a/app/src/main/java/cash/z/ecc/android/ui/setup/BackupFragment.kt +++ b/app/src/main/java/cash/z/ecc/android/ui/setup/BackupFragment.kt @@ -102,7 +102,7 @@ class BackupFragment : BaseFragment() { activationHeight = DependenciesHolder.synchronizer.network.saplingActivationHeight storedBirthday = walletSetup.loadBirthdayHeight() oldestTransactionHeight = DependenciesHolder.synchronizer.receivedTransactions.first() - ?.last()?.minedHeight?.let { + .last().minedHeight?.let { BlockHeight.new(ZcashWalletApp.instance.defaultNetwork, it.value) } // to be safe adjust for reorgs (and generally a little cushion is good for privacy) diff --git a/app/src/main/java/cash/z/ecc/android/ui/setup/RestoreFragment.kt b/app/src/main/java/cash/z/ecc/android/ui/setup/RestoreFragment.kt index 49f5a1f..3617892 100644 --- a/app/src/main/java/cash/z/ecc/android/ui/setup/RestoreFragment.kt +++ b/app/src/main/java/cash/z/ecc/android/ui/setup/RestoreFragment.kt @@ -45,7 +45,7 @@ class RestoreFragment : BaseFragment(), View.OnKeyListen override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - seedWordRecycler = binding.chipsInput.findViewById(R.id.chips_recycler) + seedWordRecycler = binding.chipsInput.findViewById(com.tylersuehr.chips.R.id.chips_recycler) seedWordAdapter = SeedWordAdapter(seedWordRecycler.adapter as ChipsAdapter).onDataSetChanged { onChipsModified() diff --git a/build-convention/build.gradle.kts b/build-convention/build.gradle.kts index 252db19..cb53e9f 100644 --- a/build-convention/build.gradle.kts +++ b/build-convention/build.gradle.kts @@ -1,5 +1,3 @@ -import org.jetbrains.kotlin.konan.properties.loadProperties - plugins { `kotlin-dsl` } @@ -13,11 +11,3 @@ buildscript { dependencyLocking { lockAllConfigurations() } - -// Per conversation in the KotlinLang Slack, Gradle uses Java 8 compatibility internally -// for all build scripts. -// https://kotlinlang.slack.com/archives/C19FD9681/p1636632870122900?thread_ts=1636572288.117000&cid=C19FD9681 -java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 -} diff --git a/build-convention/buildscript-gradle.lockfile b/build-convention/buildscript-gradle.lockfile index 02326a7..9c7bb9e 100644 --- a/build-convention/buildscript-gradle.lockfile +++ b/build-convention/buildscript-gradle.lockfile @@ -1,47 +1,38 @@ # This is a Gradle generated file for dependency locking. # Manual edits can break the build and are not advised. # This file is expected to be part of source control. -com.github.gundy:semver4j:0.16.4=classpath -com.google.code.findbugs:jsr305:3.0.2=classpath -com.google.code.gson:gson:2.8.9=classpath -com.google.errorprone:error_prone_annotations:2.3.4=classpath -com.google.guava:failureaccess:1.0.1=classpath -com.google.guava:guava:29.0-jre=classpath -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=classpath -com.google.j2objc:j2objc-annotations:1.3=classpath -de.undercouch:gradle-download-task:4.1.1=classpath net.java.dev.jna:jna:5.6.0=classpath -org.checkerframework:checker-qual:2.11.1=classpath -org.gradle.kotlin.kotlin-dsl:org.gradle.kotlin.kotlin-dsl.gradle.plugin:2.4.1=classpath -org.gradle.kotlin:gradle-kotlin-dsl-plugins:2.4.1=classpath +org.gradle.kotlin.kotlin-dsl:org.gradle.kotlin.kotlin-dsl.gradle.plugin:4.0.7=classpath +org.gradle.kotlin:gradle-kotlin-dsl-plugins:4.0.7=classpath org.jetbrains.intellij.deps:trove4j:1.0.20200330=classpath -org.jetbrains.kotlin:kotlin-android-extensions:1.7.10=classpath -org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.7.10=classpath -org.jetbrains.kotlin:kotlin-build-common:1.7.10=classpath -org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.10=classpath -org.jetbrains.kotlin:kotlin-compiler-runner:1.7.10=classpath -org.jetbrains.kotlin:kotlin-daemon-client:1.7.10=classpath -org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.10=classpath -org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.7.10=classpath -org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.7.10=classpath -org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.7.10=classpath -org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10=classpath -org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.7.10=classpath -org.jetbrains.kotlin:kotlin-native-utils:1.7.10=classpath -org.jetbrains.kotlin:kotlin-project-model:1.7.10=classpath -org.jetbrains.kotlin:kotlin-sam-with-receiver:1.7.10=classpath -org.jetbrains.kotlin:kotlin-scripting-common:1.7.10=classpath -org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.7.10=classpath -org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.7.10=classpath -org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.10=classpath -org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10=classpath -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10=classpath -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10=classpath -org.jetbrains.kotlin:kotlin-stdlib:1.7.10=classpath -org.jetbrains.kotlin:kotlin-tooling-core:1.7.10=classpath -org.jetbrains.kotlin:kotlin-tooling-metadata:1.7.10=classpath -org.jetbrains.kotlin:kotlin-util-io:1.7.10=classpath -org.jetbrains.kotlin:kotlin-util-klib:1.7.10=classpath +org.jetbrains.kotlin:kotlin-android-extensions:1.8.10=classpath +org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.8.10=classpath +org.jetbrains.kotlin:kotlin-assignment:1.8.10=classpath +org.jetbrains.kotlin:kotlin-build-common:1.8.10=classpath +org.jetbrains.kotlin:kotlin-compiler-embeddable:1.8.10=classpath +org.jetbrains.kotlin:kotlin-compiler-runner:1.8.10=classpath +org.jetbrains.kotlin:kotlin-daemon-client:1.8.10=classpath +org.jetbrains.kotlin:kotlin-daemon-embeddable:1.8.10=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.8.10=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:1.8.10=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.8.10=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.8.10=classpath +org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10=classpath +org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.8.10=classpath +org.jetbrains.kotlin:kotlin-native-utils:1.8.10=classpath +org.jetbrains.kotlin:kotlin-project-model:1.8.10=classpath +org.jetbrains.kotlin:kotlin-sam-with-receiver:1.8.10=classpath +org.jetbrains.kotlin:kotlin-scripting-common:1.8.10=classpath +org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.8.10=classpath +org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.8.10=classpath +org.jetbrains.kotlin:kotlin-scripting-jvm:1.8.10=classpath +org.jetbrains.kotlin:kotlin-stdlib-common:1.8.10=classpath +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.10=classpath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.10=classpath +org.jetbrains.kotlin:kotlin-stdlib:1.8.10=classpath +org.jetbrains.kotlin:kotlin-tooling-core:1.8.10=classpath +org.jetbrains.kotlin:kotlin-util-io:1.8.10=classpath +org.jetbrains.kotlin:kotlin-util-klib:1.8.10=classpath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0=classpath org.jetbrains:annotations:13.0=classpath empty= diff --git a/build-convention/gradle.lockfile b/build-convention/gradle.lockfile index 5741edc..7a46584 100644 --- a/build-convention/gradle.lockfile +++ b/build-convention/gradle.lockfile @@ -3,24 +3,25 @@ # This file is expected to be part of source control. net.java.dev.jna:jna:5.6.0=kotlinCompilerClasspath org.jetbrains.intellij.deps:trove4j:1.0.20200330=kotlinCompilerClasspath -org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.10=kotlinCompilerClasspath -org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.10=kotlinCompilerClasspath -org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.7.10=kotlinCompilerPluginClasspathMain -org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.7.10=kotlinCompilerPluginClasspathMain -org.jetbrains.kotlin:kotlin-native-utils:1.7.10=kotlinCompilerPluginClasspathMain -org.jetbrains.kotlin:kotlin-project-model:1.7.10=kotlinCompilerPluginClasspathMain -org.jetbrains.kotlin:kotlin-reflect:1.7.10=compileClasspath,kotlinCompilerClasspath -org.jetbrains.kotlin:kotlin-sam-with-receiver:1.7.10=kotlinCompilerPluginClasspathMain -org.jetbrains.kotlin:kotlin-script-runtime:1.7.10=kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain -org.jetbrains.kotlin:kotlin-scripting-common:1.7.10=kotlinCompilerPluginClasspathMain -org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.7.10=kotlinCompilerPluginClasspathMain -org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.7.10=kotlinCompilerPluginClasspathMain -org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.10=kotlinCompilerPluginClasspathMain -org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10=compileClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain -org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10=compileClasspath -org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10=compileClasspath -org.jetbrains.kotlin:kotlin-stdlib:1.7.10=compileClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain -org.jetbrains.kotlin:kotlin-tooling-core:1.7.10=kotlinCompilerPluginClasspathMain -org.jetbrains.kotlin:kotlin-util-io:1.7.10=kotlinCompilerPluginClasspathMain +org.jetbrains.kotlin:kotlin-compiler-embeddable:1.8.10=kotlinCompilerClasspath +org.jetbrains.kotlin:kotlin-daemon-embeddable:1.8.10=kotlinCompilerClasspath +org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.8.10=kotlinCompilerPluginClasspathMain +org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.8.10=kotlinCompilerPluginClasspathMain +org.jetbrains.kotlin:kotlin-native-utils:1.8.10=kotlinCompilerPluginClasspathMain +org.jetbrains.kotlin:kotlin-project-model:1.8.10=kotlinCompilerPluginClasspathMain +org.jetbrains.kotlin:kotlin-reflect:1.6.10=kotlinCompilerClasspath +org.jetbrains.kotlin:kotlin-reflect:1.8.10=compileClasspath +org.jetbrains.kotlin:kotlin-sam-with-receiver:1.8.10=kotlinCompilerPluginClasspathMain +org.jetbrains.kotlin:kotlin-script-runtime:1.8.10=kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain +org.jetbrains.kotlin:kotlin-scripting-common:1.8.10=kotlinCompilerPluginClasspathMain +org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.8.10=kotlinCompilerPluginClasspathMain +org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.8.10=kotlinCompilerPluginClasspathMain +org.jetbrains.kotlin:kotlin-scripting-jvm:1.8.10=kotlinCompilerPluginClasspathMain +org.jetbrains.kotlin:kotlin-stdlib-common:1.8.10=compileClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.10=compileClasspath +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.10=compileClasspath +org.jetbrains.kotlin:kotlin-stdlib:1.8.10=compileClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain +org.jetbrains.kotlin:kotlin-tooling-core:1.8.10=kotlinCompilerPluginClasspathMain +org.jetbrains.kotlin:kotlin-util-io:1.8.10=kotlinCompilerPluginClasspathMain org.jetbrains:annotations:13.0=compileClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain empty=annotationProcessor,kotlinScriptDefExtensions,runtimeClasspath diff --git a/build.gradle.kts b/build.gradle.kts index 08a182d..c7ecc1c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,7 +4,7 @@ buildscript { mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:7.4.0") + classpath("com.android.tools.build:gradle:${cash.z.ecc.android.Deps.agpVersion}") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${cash.z.ecc.android.Deps.kotlinVersion}") classpath("com.bugsnag:bugsnag-android-gradle-plugin:4.7.5") classpath("androidx.navigation:navigation-safe-args-gradle-plugin:${cash.z.ecc.android.Deps.navigationVersion}") @@ -41,7 +41,7 @@ tasks { val unstableKeywords = listOf("alpha", "beta", "rc", "m", "ea", "build") fun isNonStable(version: String): Boolean { - val versionLowerCase = version.toLowerCase() + val versionLowerCase = version.lowercase() return unstableKeywords.any { versionLowerCase.contains(it) } } \ No newline at end of file diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 13496d5..131c594 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -4,12 +4,4 @@ plugins { repositories { mavenCentral() -} - -// Per conversation in the KotlinLang Slack, Gradle uses Java 8 compatibility internally -// for all build scripts. -// https://kotlinlang.slack.com/archives/C19FD9681/p1636632870122900?thread_ts=1636572288.117000&cid=C19FD9681 -java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 } \ No newline at end of file diff --git a/buildSrc/src/main/java/cash/z/ecc/android/Dependencies.kt b/buildSrc/src/main/java/cash/z/ecc/android/Dependencies.kt index 9b72035..7ff40fa 100644 --- a/buildSrc/src/main/java/cash/z/ecc/android/Dependencies.kt +++ b/buildSrc/src/main/java/cash/z/ecc/android/Dependencies.kt @@ -4,7 +4,8 @@ object Deps { // For use in the top-level build.gradle which gives an error when provided // `Deps.Kotlin.version` directly const val kotlinVersion = "1.8.0" - const val navigationVersion = "2.5.2" + const val navigationVersion = "2.6.0" + const val agpVersion = "8.0.2" const val compileSdkVersion = 33 const val minSdkVersion = 21 diff --git a/feedback/build.gradle b/feedback/build.gradle index c71cfef..9a340b5 100644 --- a/feedback/build.gradle +++ b/feedback/build.gradle @@ -13,15 +13,14 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles 'consumer-rules.pro' } - kotlinOptions { - freeCompilerArgs += "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" - } + def javaVersion = JavaVersion.toVersion(project.property("ANDROID_JVM_TARGET")) compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility javaVersion + targetCompatibility javaVersion } kotlinOptions { - jvmTarget = "1.8" + jvmTarget = javaVersion.toString() + freeCompilerArgs += "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" } buildTypes { release { diff --git a/gradle.properties b/gradle.properties index f5e6189..5e1c2b3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,4 +16,4 @@ IS_SDK_INCLUDED_BUILD=false KTLINT_VERSION=0.45.2 -ANDROID_JVM_TARGET=1.8 \ No newline at end of file +ANDROID_JVM_TARGET=17 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 943f0cb..c1962a7 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 700740e..2c3425d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip -distributionSha256Sum=7ba68c54029790ab444b39d7e293d3236b2632631fb5f2e012bb28b4ff669e4b +distributionSha256Sum=e111cb9948407e26351227dabce49822fb88c37ee72f1d1582a69c68af2e702f +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 65dcd68..aeb74cb 100755 --- a/gradlew +++ b/gradlew @@ -85,9 +85,6 @@ done APP_BASE_NAME=${0##*/} APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -144,7 +141,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +149,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -197,6 +194,10 @@ if "$cygwin" || "$msys" ; then done fi + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + # Collect all arguments for the java command; # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of # shell script including quotes and variable substitutions, so put them in diff --git a/lockbox/build.gradle b/lockbox/build.gradle index 9aa0da2..3765faf 100644 --- a/lockbox/build.gradle +++ b/lockbox/build.gradle @@ -17,12 +17,13 @@ android { consumerProguardFiles 'consumer-rules.pro' } + def javaVersion = JavaVersion.toVersion(project.property("ANDROID_JVM_TARGET")) compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility javaVersion + targetCompatibility javaVersion } kotlinOptions { - jvmTarget = "1.8" + jvmTarget = javaVersion.toString() } buildTypes { release { diff --git a/qrecycler/build.gradle b/qrecycler/build.gradle index c6148ba..6845c25 100644 --- a/qrecycler/build.gradle +++ b/qrecycler/build.gradle @@ -13,12 +13,13 @@ android { testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } + def javaVersion = JavaVersion.toVersion(project.property("ANDROID_JVM_TARGET")) compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility javaVersion + targetCompatibility javaVersion } kotlinOptions { - jvmTarget = "1.8" + jvmTarget = javaVersion.toString() } buildTypes { release {