Błąd podczas tworzenia pliku APK z podpisem w systemie Android: nie znaleziono pliku keystore.jks do podpisywania konfiguracji „externalOverride”

85

Otrzymuję ten błąd, gdy próbuję zbudować podpisany pakiet APK. Niedawno zaktualizowałem do API 23, ale po tym pomyślnie wygenerowałem plik APK. Jestem zmieszany. Proszenie o pomoc i porady, jak rozwiązać ten problem. Oto błąd

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.

I dziennik

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'. 

Oto mój 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'


}
Gofry Inc
źródło

Odpowiedzi:

128

Znalazłem rozwiązanie. Zgubiłem ścieżkę do keystore.jkspliku. Wyszukałem plik na moim komputerze, korzystając z tej ścieżki i wszystko działało świetnie.

Gofry Inc
źródło
2
Otrzymałem ten błąd po przeniesieniu mojego pliku .jks do innej lokalizacji i zapomniałem zaktualizować w Android Studio x) Dzięki
Arbitur
53

Plik -> Unieważnij pamięć podręczną i uruchom ponownie ...

Kompiluj -> Zbuduj podpisany plik APK -> sprawdź ścieżkę w oknie dialogowym

Sprawdź ścieżkę magazynu kluczy

Martin Pfeffer
źródło
13

Jest to problem, który może powstać podczas zapisywania „nazwy pliku” zamiast ścieżki podczas generowania pliku .jks. Wygeneruj nowy, umieść go na pulpicie (lub dowolnej innej rzeczywistej ścieżce) i ponownie wygeneruj plik APK.

Jacobo Koenig
źródło
2
Studio Android pozwoliło Ci wybrać folder i to był mój problem ... Wybrałem folder, a nie plik klucza ... -1 dla Android Studio, ponieważ pozwolenie wybrać coś nie będzie działać.
Luismi
11

Kliknij wybierz istniejący i ponownie wybierz lokalizację, w której znajduje się plik jks .

wprowadź opis obrazu tutaj

Mam nadzieję, że ta sztuczka zadziała .

Muzammil
źródło
1
dokładnie to jest dokładne rozwiązanie
TAHA SULTAN TEMURI Grudnia
3

Mam ten sam problem, ponieważ nie mam ścieżki do magazynu kluczy, a następnie widzę rozwiązania Waffles.inc i mam nowy problem W moim Android Studio 3.1 dla komputerów Mac miał problem z oknem dialogowym podczas próby utworzenia nowej ścieżki magazynu kluczy , wygląda to tak

wprowadź opis obrazu tutaj

jeśli masz ten sam problem, nie martw się o czarne okna, po prostu wpisujesz nowy plik kluczy, a następnie zapisujesz.

Uray Febri
źródło
2

TL; DR: Sprawdź ścieżkę do swojego keystore.jkspliku .

W moim przypadku tak się stało:

Przeniosłem folder projektu całej mojej aplikacji do innej lokalizacji na moim komputerze. Dużo później chciałem wygenerować podpisany plik APK. Nieznane mi, domyślna lokalizacja ścieżki do mojej keystore.jkszostała zresetowana do niewłaściwej lokalizacji i kliknąłem OK. Ponieważ nie mógł znaleźć magazynu kluczy na ścieżce, którą wybrałem, wystąpił ten błąd.

Rozwiązaniem było sprawdzenie, czy ścieżka do mojego keystore.jkspliku jest poprawna.

Taslim Oseni
źródło
0

otwórz key.properties i sprawdź, czy ścieżka jest poprawna. (zamień z \ na /)

przykład: -

zamień z „storeFile = D: \ Projects \ Flutter \ Key \ key.jks” na „storeFile = D: /Projects/Flutter/Key/key.jks”

Strata krwi
źródło
0

Dla osób, które próbowały powyżej, spróbuj wygenerować klucz za pomocą opcji -keypass i -storepass, ponieważ wprowadzałem tylko jedno z haseł podczas uruchamiania go, tak jak w dokumentacji React Native. To spowodowało błąd podczas próby kompilacji.

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

MattFitz
źródło
0

W systemie Linux lub Ubuntu musisz użyć pełnej ścieżki.

Na przykład

/home/ubuntu/.android/keystorname.keystore

W moim przypadku ~zamiast /home/user/. Używanie skrótów, takich jak poniżej, nie działa

~/.android/keystorname.keystore
./keystorename.keystore
Dheeraj M Pai
źródło
0

Edytowanie ścieżki pliku kluczy rozwiązało mój problem.

rycerz
źródło