任务“:app:packageRelease”的执行失败。执行com.android.build.gradle.internal.tasks.Workers$ActionFacade com.android.ide.common.signing时出现故障。密钥工具异常:无法从存储“/Users/husseinawaesha/key.jks”读取密钥:密钥库格式无效
bvhaajcl1#
这个来自Play Console帮助页面的命令行语句将生成一个Upload Keystore,您只需替换自己的别名并提供keytool的路径...
keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
然而,虽然它确实要求存储密码,但它不要求密钥密码。如果你像我一样是新手,你可能不会注意到,稍后当你必须输入密钥密码时,你可能会发现自己在笔记中乱翻,试图找到你写下它的地方。如果你键入类似keypassword的东西作为猜测,它将以无效的密钥存储格式响应。最好使用Android Studio进程生成上传密钥库,而不是使用此命令行语句。
wvt8vs2t2#
你需要用android studio生成密钥。我遇到了同样的问题,我的M1(OpenJDK)上的keytool生成了无效的密钥。
vdzxcuhz3#
这可能是Android Studio和Keytool使用的Java版本之间的冲突。要解决此问题,请使用Andtroid Studio的JDK重新创建密钥库。1.删除或重命名当前密钥库(.jks文件)1.查看Android Studio的JDK
.jks
flutter doctor -v
大概是这样的
Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
1.导航到java所在的bin文件夹(您的路径可能不同)
java
bin
cd /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/
1.创建新密钥库:https://flutter.dev/docs/deployment/android#create-an-upload-keystore
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 } }
llew8vvj5#
我遇到了同样的问题,因为我使用的是带有默认JDK的Android Studio,当我将JDK更改为不同的JDK并尝试使用终端运行应用程序时,总是失败。溶液:
第一个月
5条答案
按热度按时间bvhaajcl1#
这个来自Play Console帮助页面的命令行语句将生成一个Upload Keystore,您只需替换自己的别名并提供keytool的路径...
然而,虽然它确实要求存储密码,但它不要求密钥密码。如果你像我一样是新手,你可能不会注意到,稍后当你必须输入密钥密码时,你可能会发现自己在笔记中乱翻,试图找到你写下它的地方。如果你键入类似keypassword的东西作为猜测,它将以无效的密钥存储格式响应。
最好使用Android Studio进程生成上传密钥库,而不是使用此命令行语句。
wvt8vs2t2#
你需要用android studio生成密钥。
我遇到了同样的问题,我的M1(OpenJDK)上的keytool生成了无效的密钥。
vdzxcuhz3#
这可能是Android Studio和Keytool使用的Java版本之间的冲突。要解决此问题,请使用Andtroid Studio的JDK重新创建密钥库。
1.删除或重命名当前密钥库(
.jks
文件)1.查看Android Studio的JDK
大概是这样的
1.导航到
java
所在的bin
文件夹(您的路径可能不同)1.创建新密钥库:
https://flutter.dev/docs/deployment/android#create-an-upload-keystore
pxy2qtax4#
请用此代码创建密钥存储
从应用程序引用密钥库
创建一个名为appdir/android/ www.example.com的文件key.properties,其中包含对密钥库的引用:
将此添加到应用级别Gradile
llew8vvj5#
我遇到了同样的问题,因为我使用的是带有默认JDK的Android Studio,当我将JDK更改为不同的JDK并尝试使用终端运行应用程序时,总是失败。
溶液:
第一个月