有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java算法“HmacPBESHA256”不可用,这是什么?

我无法构建Apk订单应用程序包。我在正确的文件夹中有一个密钥。我试过了

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

然后,因为它不起作用

`/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool -genkey -v -keystore ~/pc-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias pckey`

但它不起作用

终端

... % **flutter build apk**

💪 Building with sound null safety 💪

                                                                        
FAILURE: Build failed with an exception.                                
                                                                        
* What went wrong:                                                      
Execution failed for task ':app:packageRelease'.                        
> A failure occurred while executing com.安卓.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable
   > com.安卓.ide.common.signing.KeytoolException: Failed to read key upload from store "/Users/.../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 5s                                                      
Running Gradle task 'assembleRelease'...                                
Running Gradle task 'assembleRelease'... Done                       6,7s
Gradle task assembleRelease failed with exit code 1

我的身材。等级

    def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.安卓.application'
apply plugin: 'kotlin-安卓'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"


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

安卓 {
    compileSdkVersion 30

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.安卓.com/studio/build/application-id.html).
        applicationId "com.example.myappname"
        minSdkVersion 16
        targetSdkVersion 30
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

    signingConfigs {
     release {
           keyAlias keystoreProperties['keyAlias']
           keyPassword keystoreProperties['keyPassword']
           storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
           storePassword keystoreProperties['storePassword']
       }
   }
   buildTypes {
       release {
           signingConfig signingConfigs.release
       }
   }
}

flutter {
    source '../..'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

键。属性

storePassword=MyPasswort
keyPassword=MyPasswort
keyAlias=keys
storeFile=/Users/.../upload-keystore.jks

我上次做的每件事都很管用,但现在,它不想要了。我使用Visual Studio并尝试了Android Studio,但在那里我无法创建apk。是否有其他方法可以创建一个工作的APK用于测试目的,或用于解决我如何解决问题或原因


共 (1) 个答案

  1. # 1 楼答案

    要测试未签名的APK

    改变

    signingConfigs {
         release {
               keyAlias keystoreProperties['keyAlias']
               keyPassword keystoreProperties['keyPassword']
               storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
               storePassword keystoreProperties['storePassword']
           }
       }
       buildTypes {
           release {
               signingConfig signingConfigs.release
           }
       }
    

    致:

    buildTypes {
            release {
                // Signing with the debug keys for now, so `flutter run  release` works.
                signingConfig signingConfigs.debug
            }
        }