flutter 如何解决无效的密钥存储格式?

odopli94  于 2022-12-30  发布在  Flutter
关注(0)|答案(5)|浏览(301)

任务“:app:packageRelease”的执行失败。
执行com.android.build.gradle.internal.tasks.Workers$ActionFacade com.android.ide.common.signing时出现故障。密钥工具异常:无法从存储“/Users/husseinawaesha/key.jks”读取密钥:密钥库格式无效

bvhaajcl

bvhaajcl1#

这个来自Play Console帮助页面的命令行语句将生成一个Upload Keystore,您只需替换自己的别名并提供keytool的路径...

keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks

然而,虽然它确实要求存储密码,但它不要求密钥密码。如果你像我一样是新手,你可能不会注意到,稍后当你必须输入密钥密码时,你可能会发现自己在笔记中乱翻,试图找到你写下它的地方。如果你键入类似keypassword的东西作为猜测,它将以无效的密钥存储格式响应。
最好使用Android Studio进程生成上传密钥库,而不是使用此命令行语句。

wvt8vs2t

wvt8vs2t2#

你需要用android studio生成密钥。
我遇到了同样的问题,我的M1(OpenJDK)上的keytool生成了无效的密钥。

vdzxcuhz

vdzxcuhz3#

这可能是Android Studio和Keytool使用的Java版本之间的冲突。要解决此问题,请使用Andtroid Studio的JDK重新创建密钥库。
1.删除或重命名当前密钥库(.jks文件)
1.查看Android Studio的JDK

flutter doctor -v

大概是这样的

Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java

1.导航到java所在的bin文件夹(您的路径可能不同)

cd /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/

1.创建新密钥库:
https://flutter.dev/docs/deployment/android#create-an-upload-keystore

pxy2qtax

pxy2qtax4#

请用此代码创建密钥存储

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

从应用程序引用密钥库
创建一个名为appdir/android/ www.example.com的文件key.properties,其中包含对密钥库的引用:

storePassword=password from previous step
keyPassword=password from previous step
keyAlias=key
storeFile=location of the key store file, e.g. 
/Users/username/key.jks

将此添加到应用级别Gradile

def keystorePropertiesFile = rootProject.file("key.properties")
 def keystoreProperties = new Properties()
 keystoreProperties.load(new 
 FileInputStream(keystorePropertiesFile))

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

llew8vvj5#

我遇到了同样的问题,因为我使用的是带有默认JDK的Android Studio,当我将JDK更改为不同的JDK并尝试使用终端运行应用程序时,总是失败。
溶液:

  • 导航至/用户/"用户名"/. android/
  • 使用"rm-rf debug. keystore"删除debug. keystore
  • 运行此命令以生成新的debug. keystore:

第一个月

  • 导航回你的应用程序文件夹并运行"./gradlew build"

相关问题