我试图使用名为“ keystore.keystore” 的旧密钥库中的数据对新的Android应用进行签名。它无法恢复密钥,因此我从磁盘上删除了该密钥库,并创建了一个名为“ keystore.jks” 的新密钥。
然后,我在页面https://developer.android.com/studio/build/build-variants#signing中按照以下指南在build.gradle中添加了以下内容:
signingConfigs {
release {
storeFile file("C:\\SomeDirectory\\keystore.jks")
storePassword "mypassword123"
keyAlias "key"
keyPassword "mypassword123"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
然后我转到Android Studio中的构建/生成签名包/ APK 菜单选项。它没有从上述build.gradle文件中选择有关密钥库,密钥或别名的信息,因此我在对话框窗口中再次手动输入了该信息。
按下一步后,任务完成,但出现以下错误:
“ C:\ SomeDirectory \ keystore.keystore(系统找不到文件 指定)”。
请注意密钥库的名称,它是旧名称。它来自哪里??
因此,我打开了cmd.exe并运行了它:“ gradlew.bat assembleRelease”。发生了类似的错误:
任务:app:packageRelease FAILED 失败:构建失败,发生异常。 * 什么地方出了错: 任务':app:packageRelease'的执行失败。 java.io.FileNotFoundException:C:\ SomeDirectory \ keystore.keystore (系统找不到指定的文件)
使缓存无效/重启无效。
gradle为什么引用旧的密钥库名称,如何使其使用新的密钥库?
答案 0 :(得分:1)
我今天也面临同样的问题。
对我有用的是在两次构建之间删除app/build/intermediates/signing_config/release/out/signing-config.json
文件(我不知道为什么这样)。
答案 1 :(得分:0)
gradlew clean
将使gradle使用新的
答案 2 :(得分:0)
如果您使用的是MAC,则〜/ Users / [用户名] /。gradle / gradle.properties也应进行编辑
答案 3 :(得分:-1)
我有完全一样的问题。一个Android Studio Clean Project并重新启动即可为我解决。