Android 和 gradle 在签署应用程序时使用旧的不存在的密钥库

cam*_*cam 5 android gradle apk

我尝试使用来自名为"keystore.keystore" 的旧密钥库中的数据对我的新 android 应用程序进行签名。它无法恢复密钥,因此我从磁盘中删除了该密钥库并创建了一个名为"keystore.jks"的新密钥库

然后我将以下内容添加到 build.gradle,遵循页面https://developer.android.com/studio/build/build-variants#signing 的指南:

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'
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我转到Android Studio 中的Build / Generate Signed Bundle/APK菜单选项。它没有从上面的 build.gradle 文件中选择有关密钥库、密钥或别名的信息,所以我在对话窗口中再次手动输入。

按下一步后,任务完成并出现以下错误:

“C:\SomeDirectory\keystore.keystore(系统找不到指定的文件)”。

注意密钥库的名称,它是旧名称。它从何而来???

所以我打开 cmd.exe 并运行这个:“gradlew.bat assembleRelease”。有类似的错误:

任务 :app:packageRelease FAILED FAILURE:构建失败,出现异常。* 出了什么问题:任务 ':app:packageRelease' 执行失败。java.io.FileNotFoundException: C:\SomeDirectory\keystore.keystore(系统找不到指定的文件)

使缓存无效/重新启动无济于事。

为什么 gradle 指的是旧的密钥库名称,如何让它使用新的密钥库?

小智 -1

我有完全相同的问题。Android Studio Clean Project 和 Reboot 为我解决了这个问题。