authpass / biometric_storage

Flutter plugin to store data behind biometric authentication (ie. fingerprint)
https://pub.dev/packages/biometric_storage
MIT License
183 stars 107 forks source link

Android build fails on 5.0.0+4 with 'Could not find method jvmToolchain' #107

Open scheda74 opened 10 months ago

scheda74 commented 10 months ago

Hey, when building for android I'm getting the following errors:

A problem occurred evaluating project ':biometric_storage'.
> Could not find method jvmToolchain() for arguments [17] on extension 'kotlin' of type org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension.

A problem occurred configuring project ':biometric_storage'.
> Failed to notify project evaluation listener.
   > Cannot invoke method substring() on null object
   > compileSdkVersion is not specified. Please add it to build.gradle

I'm quite new to android, gradle and kotlin. I think somewhere in my gradle config I have to wrong versions set.

I'm using

Flutter version 3.16.5
android-34, build-tools 34.0.0
OpenJDK 17.0.7+0-17.0.7b1000.6-10550314
gradle-7.5
ext.kotlin_version = '1.7.10'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10"
id "com.android.application" version "7.3.0" apply false

To be honest I'm a bit confused about all of the versions of the different tools. It looks like that the biometric_storage plugin uses gradle 8.1. So does that mean I have to upgrade to that version? Which JDK and android-kotlin-plugin version should be used then?

scheda74 commented 10 months ago

After removing biometric_storage as a dependency my builds work just fine.

So instead I'm using a combination of local_auth and flutter_secure_storage as this package is broken (at least for me).

vlad-buhaescu-qoob commented 10 months ago

my temporary fix is to remove

kotlin { jvmToolchain(17) }

from the libary's Gradle file at /Users/"yourUser"/.pub-cache/hosted/pub.dev/biometric_storage-5.0.0+4/android/build.gradle

roberto-gigli commented 10 months ago

I don't have explicitly set kotlin { jvmToolchain(17) } Yet i get the same error, any news onto why this happens?

vlad-buhaescu-qoob commented 10 months ago

it's set in the library by default for you.

ChauCM commented 6 months ago

upgrade kotlin version and build:gradle works for me, probably just kotlin_version is enough from ext.kotlin_version = '1.7.x' to ext.kotlin_version = '1.8.20'

tungt84 commented 5 months ago

I update android/build.gradle buildscript { ext.kotlin_version = '1.9.22' //use latest version } but same issue. Any help

jvinai commented 4 months ago

I have the same error, any fix?

vasil-boshnyakov commented 1 week ago

That is a major issue - we can't use the latest gradle. Any proper solution?