'Execution failed for task ':app:signReleaseBundle'

I have this error at the moment to make flutter build appbundle

this is the error:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:signReleaseBundle'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Failed to read key sd from store "C:\flutter_project\cursin2\cursin-main\android\app\upload-keystore.jks": Integrity check failed: java.security.NoSuchAlgorithmException: Algorithm HmacPBESHA256 not available

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 6s
Running Gradle task 'bundleRelease'...                              9,1s
Gradle task bundleRelease failed with exit code 1
PS C:\flutter_project\cursin2\cursin-main> 

enter image description here

i've tried all ways to fix it, but the error is still appearing.

my key.properties:

storePassword=ul109000
keyPassword=ul109000
keyAlias=sd
storeFile=C:/flutter_project/cursin2/cursin-main/android/app/upload-keystore.jks


Solution 1:[1]

The only method to solve this, that worked for me was:

  1. flutter clean
  2. edit the path i used in key propeties.

For example: "./upload-keystore.jks" to "C:/key/myapp/upload-keystore.jks" 3. flutter build appbundle

Solution 2:[2]

in android app/ build.gradle

inside android tag

def keystoreProperties = new Properties()
    def keystorePropertiesFile = rootProject.file('key.properties')
    if (keystorePropertiesFile.exists()) {
        keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
    }

    signingConfigs {
        debug {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }

storeFile path will be ./upload-keystore.jks

and

 buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            minifyEnabled true
            shrinkResources true
            signingConfig signingConfigs.release
        }
    }

Solution 3:[3]

Delete this:

debug {
    storeFile file(storeFile_)
    storePassword storePassword_
    keyAlias keyAlias_
    keyPassword keyPassword_
}

Solution 4:[4]

First

in android app/ build.gradle

replace this

   buildTypes {
       release {
           signingConfig signingConfigs.release
       }
   }

with this

   buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            minifyEnabled true
            shrinkResources true
            signingConfig signingConfigs.release
        }
   }

Second

remove upload-keystore.jks in your generation path in my case (Ubuntu OS) the path is /home/user/upload-keystore.jks

Third

genrate a new key with with extra attribute

-storetype JKS

for Linux

keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload -storetype JKS

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Carlos PeƱaranda
Solution 2 Hardik Mehta
Solution 3 Tyler2P
Solution 4 Ahmed Elsayed