113

当我尝试构建签名 APK 时出现此错误。我最近升级到 API 23,但之后成功生成了 APK:s。我很困惑。寻求帮助并建议如何解决这个问题。这是错误

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:validateExternalOverrideSigning'.
> Keystore file /Users/me/Desktop/final apps/keystore.jks not 
found for signing config 'externalOverride'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --  
debug option to get more log output.

和日志

Information:Gradle tasks [:app:assembleRelease]
:app:preBuild UP-TO-DATE
:app:preReleaseBuild UP-TO-DATE
:app:checkReleaseManifest
:app:preDebugBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72311Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42311Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAppindexing810Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesBasement810Library UP-TO-DATE
:app:prepareReleaseDependencies
:app:compileReleaseAidl UP-TO-DATE
:app:compileReleaseRenderscript UP-TO-DATE
:app:generateReleaseBuildConfig UP-TO-DATE
:app:generateReleaseAssets UP-TO-DATE
:app:mergeReleaseAssets UP-TO-DATE
:app:generateReleaseResValues UP-TO-DATE
:app:generateReleaseResources UP-TO-DATE
:app:mergeReleaseResources UP-TO-DATE
:app:processReleaseManifest UP-TO-DATE
:app:processReleaseResources UP-TO-DATE
:app:generateReleaseSources UP-TO-DATE
:app:compileReleaseJavaWithJavac
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:app:compileReleaseNdk UP-TO-DATE
:app:compileReleaseSources
:app:lintVitalRelease
:app:transformClassesWithDexForRelease
:app:mergeReleaseJniLibFolders
:app:transformNative_libsWithMergeJniLibsForRelease
:app:processReleaseJavaRes UP-TO-DATE
:app:transformResourcesWithMergeJavaResForRelease
:app:validateExternalOverrideSigning FAILED
Error:Execution failed for task ':app:validateExternalOverrideSigning'.
> Keystore file /Users/me/Desktop/final apps/keystore.jks not found for
signing config 'externalOverride'. 

这是我的 Gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"


defaultConfig {
    applicationId "com.waffles.vatsandbats"
    minSdkVersion 14
    targetSdkVersion 23
}

buildTypes {
    release {
        minifyEnabled false
         proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.txt'     
    }
}
}

dependencies {

compile files('libs/acra-4.7.0-javadoc.jar')
compile files('libs/acra-4.7.0-sources.jar')
compile files('libs/acra-4.7.0.jar')
compile 'com.google.android.gms:play-services-appindexing:8.1.0'
compile files('libs/activation.jar')
compile files('libs/mail.jar')
compile files('libs/additionnal.jar')
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'


}
4

13 回答 13

157

我找到了解决方案。我放错了keystore.jks文件的路径。在我的计算机上使用该路径搜索文件,一切正常。

于 2016-03-23T11:06:21.323 回答
58

文件 -> 使缓存无效并重新启动...

构建 -> 构建签名的 APK ->检查对话框中的路径

检查密钥存储路径

于 2017-01-25T23:31:35.087 回答
26

单击选择现有并再次选择您的jks文件所在的位置。

在此处输入图像描述

我希望这个技巧对你有用

于 2019-12-02T02:18:14.773 回答
13

这是在生成 .jks 文件时写下“文件名”而不是路径时可能出现的问题。生成一个新的,放在桌面上(或任何其他真实路径)并重新生成 APK。

于 2016-09-02T01:28:14.230 回答
11

TL;DR:检查keystore.jks文件的路径。

就我而言,这就是发生的事情:

我将整个应用程序的项目文件夹移动到 PC 上的另一个位置。很久以后,我想生成一个签名的 apk 文件。我不知道,我的路径的默认位置keystore.jks已重置为错误的位置,我点击了确定。由于它在我选择的路径上找不到密钥库,所以我收到了那个错误。

解决方案是检查我的keystore.jks文件的路径是否正确。

于 2019-10-21T12:38:28.200 回答
4

我有同样的问题,因为我没有密钥库路径然后我看到了 Waffles.inc解决方案并遇到了一个新问题在我的 Android Studio 3.1 for mac 中尝试创建新的密钥库路径时出现 Windows 对话框问题,就像这样

在此处输入图像描述

如果你有同样的问题,不要担心黑色窗口它只是输入你的新密钥库然后保存。

于 2018-07-31T07:55:57.853 回答
3

打开 key.properties 并检查您的路径是否正确。(从 \ 替换为 /)

示例: -

“storeFile=D:\Projects\Flutter\Key\key.jks” 替换“storeFile=D: /Projects/Flutter/Key/key.jks”

于 2019-02-02T15:13:40.527 回答
2

编辑密钥库文件的路径解决了我的问题。

于 2020-06-21T20:12:21.627 回答
2

文件路径是我改变文件路径的罪魁祸首app/build.gradle

storeFile file('upload-keystore.jks')
于 2021-07-12T13:03:51.797 回答
1

对于上面尝试过的人,请尝试使用-keypass-storepass选项生成密钥,因为我在运行它时只输入其中一个密码,就像 React Native 文档有你一样。这导致它在尝试构建时出错。

keytool -keypass PASSWORD1 -storepass PASSWORD2 -genkeypair -v -keystore release2.keystore -alias release2 -keyalg RSA -keysize 2048 -validity 10000

于 2019-07-11T17:54:22.410 回答
1

jks file我有一个放在桌面上的现有文件。

在对话框中,我选择了选择现有的并使用拖放将其拖放jks file到此图像中的对话框中。

在此处输入图像描述

然后自动确定路径,而不必导航到该jks file位置

于 2021-05-29T06:08:57.417 回答
0

在 Linux 或 Ubuntu 上,您需要使用完整路径。

例如

/home/ubuntu/.android/keystorname.keystore

就我而言,我使用~的是/home/user/. 使用像下面这样的速记不起作用

~/.android/keystorname.keystore
./keystorename.keystore
于 2020-05-14T19:35:50.883 回答
0

在我的情况下,我正在创建一个发布版本,并将 JKS 放在buildTypes.gradle

signingConfigs {
    release {
        storeFilefile('<Project Path>') 
    }
}
于 2021-12-20T16:03:45.257 回答