Android 错误构建已签名的 APK: keystore.jks 未找到用于签名配置‘ foreign alOverride’的文件

在尝试构建已签名的 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'.

这是我的格拉德尔

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'




}
140393 次浏览

我找到了解决方案,我把 keystore.jks文件的路径放错了地方。 我用那个路径在电脑上搜索文件,一切都很顺利。

这是一个问题,可能出现在写下“文件名”而不是路径,同时生成。Jks 文件。生成一个新的,把它放在桌面(或任何其他实际路径)和重新生成 APK。

文件-> 无效缓存和重新启动..。

在对话框中构建-> 构建带签名的 APK-> check the path

Check the key store path

我也有同样的问题,因为我没有密钥存储路径,然后我看到 华夫饼公司解决方案,有一个新的问题在我的 Android Studio 3.1 for mac 有一个 Windows 对话框问题当尝试创建新的 密钥存储库路径,它是这样的

enter image description here

如果您有相同的问题,不要担心黑色窗口,它只是键入您的新密钥存储,然后保存。

打开 key.properties 并检查路径是否正确

例子: -

取代 “ storeFile = D: Projects Flutter Key Key.jks” "storeFile=D:/Projects/Flutter/Key/key.jks"

对于那些已经尝试过以上方法的人,尝试使用 -keypass商店通行证选项生成密钥,因为我在运行它时只输入了其中一个密码,就像 React Nativedocs 那样。这导致它在尝试构建时出错。

Keytool-keypass PASSWORD1-storepass PASSWORD2-genkeydouble-v-keystore release ase2.keystore-alias release ase2-keyalg RSA-keysize 2048-valid10000

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

对我来说,事情是这样的:

I moved the project folder of my entire app to another location on my PC. Much later, I wanted to generate a signed apk file. Unknown to me, the default location of the path to my keystore.jks had been reset to a wrong location and I had clicked okay. Since it could not find a keystore at the path I selected, I got that error.

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

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

enter image description here

我希望这招对你有用。

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

比如说

/home/ubuntu/.android/keystorname.keystore

在我的例子中,我使用的是 ~而不是 /home/user/。像下面这样使用简写是不起作用的

~/.android/keystorname.keystore
./keystorename.keystore

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

我有一个现有的 jks file,我已经放在我的桌面上。

在对话框中,我选择了 选择“存在”,并使用 Drag and Dropjks file按照这个图像放入到对话框中。

enter image description here

The path is then automatically determined instead of having to navigated to the jks file location

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

storeFile file('upload-keystore.jks')

在我的案例中,我正在创建一个 释放构建,并且 JKS 被放置在 BuildType.gradle

signingConfigs {
release {
storeFilefile('<Project Path>')
}
}

请确保您的 keystore文件名不包含任何空格,例如。

  • 不是这样的

enter image description here

“一定是这样”

enter image description here