Błąd „Certyfikat debugowania wygasł” we wtyczkach Eclipse dla Androida

1898

Korzystam z wtyczek Eclipse dla systemu Android, aby zbudować projekt, ale pojawia się ten błąd w oknie konsoli:

[2010-02-03 10:31:14 - androidVNC]Error generating final archive:
Debug certificate expired on 1/30/10 2:35 PM!

Jak to naprawić?

hap497
źródło
8
Czy ktoś może powiedzieć, dlaczego tak się dzieje?
Matical
2
Czy data systemowa uległa zmianie, powoduje, że ważny jest 25-letni certyfikat (zalecany podczas podpisywania aplikacji). nie jest to wydarzenie, które ma więcej niż 5 lat
Trikaldarshi,
Musisz utworzyć nowy
magazyn

Odpowiedzi:

2241

Usuń swój certyfikat debugowania ~/.android/debug.keystorew systemie Linux i Mac OS X ; katalog jest podobny %USERPROFILE%/.androiddo systemu Windows .

Wtyczka Eclipse powinna następnie wygenerować nowy certyfikat podczas następnej próby zbudowania pakietu debugowania. Konieczne może być wyczyszczenie, a następnie kompilacja w celu wygenerowania certyfikatu.

Christopher Orr
źródło
13
W systemie Windows musiałem usunąć plik debug.keystore i wprowadzić zmiany, aby rozpocząć nową kompilację. Utworzyłem nowy projekt testowy i został wygenerowany nowy debug.keystore.
Tomas
117
Zostanie również ponownie wygenerowany dla bieżącego projektu, jeśli projekt zostanie „wyczyszczony” (przejdź do Projekt -> Wyczyść ...)
adamnfish
11
Występuje teraz problem ze śledzeniem błędów, wymagający naprawy. Głosuj na to. code.google.com/p/android/issues/detail?id=15370
Manfred Moser
61
Clean nie naprawił dla mnie problemu, musiałem ręcznie uruchomić rm ~ / .android / debug.keystore.
James Moore
3
@James Ręczne usuwanie magazynu kluczy to pierwsza część powyższej odpowiedzi. Czyszczenie projektu (lub przebudowanie) jest tym, co musisz zrobić, aby wygenerować nowy magazyn kluczy.
Christopher Orr
334

Po instalacji zestaw Android SDK generuje debugcertyfikat podpisywania w magazynie kluczy o nazwie debug.keystore. Wtyczka Eclipse używa tego certyfikatu do podpisywania każdej generowanej kompilacji aplikacji.

Niestety certyfikat debugowania jest ważny tylko przez 365 dni. Aby wygenerować nowy, musisz usunąć istniejący debug.keystoreplik. Jego lokalizacja zależy od platformy - można ją znaleźć w Preferencjach - Android - Kompilacja - Domyślny magazyn kluczy debugowania .

Jeff Gilfelt
źródło
23
Zmiana na 30 lat jako domyślną została zaakceptowana 6 kwietnia 2011 r .: review.source.android.com/#change,22128
James Moore
Jeśli usuniesz plik debug.keystore, jak zaktualizujesz aplikację?
user739375,
6
@ user739375, debug.keystore służy tylko do debugowania, osobny certyfikat jest używany do „produkcji”.
Teo Klestrup Röijezon
@JamesMoore Naprawdę zdziwiłem się, ile lat miał certyfikat
Trikaldarshi
254

Usunięcie wszystkich plików APK związanych z programowaniem jest uciążliwe, ponieważ nowy certyfikat nie pasuje, więc nie można uaktualnić ich we wszystkich AVD. Musisz także uzyskać inny klucz MAP-API do programowania. Jest inne rozwiązanie.

Możesz utworzyć własny certyfikat debugowania debug.keystorez dowolnym terminem ważności. Zrób to w .androidfolderze w swoim HOMEkatalogu:

keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 14000

keytool.exemożna znaleźć w folderze bin JDK (np. C:\Program Files\Java\jdk1.6.0_31\bin\w systemie Windows).

ADT ustawia imię i nazwisko w certyfikacie jako „Android Debug”, jednostkę organizacyjną jako „Android”, a dwuliterowy kod kraju jako „US”. Możesz pozostawić wartości organizacji, miasta i stanu jako „Nieznane”. W tym przykładzie użyto 14 000 dni. Możesz użyć dowolnej wartości.

Dave MacLean
źródło
3
Podoba mi się to, ponieważ zapewnia bardziej długoterminową poprawkę, dopóki SDK nie zapewni lepszego sposobu obsługi wygasającego certyfikatu.
Sean Aitken,
23
Podoba mi się to, ponieważ wcale nie muszę używać zaćmienia.
MattK
Zakładam, że należy to wpisać w wierszu polecenia. Jeśli tak, pojawia się błąd „narzędzie nie zostało rozpoznane”. Czy możesz wyjaśnić tę metodę?
Ted Betz
1
keytool można znaleźć w katalogu bin JDK (dowolny system operacyjny). Zazwyczaj dodaję ten katalog bin do mojej PATH, aby powyższe działało z dowolnego miejsca. Możesz albo znaleźć katalog bin JDK i dodać go do ŚCIEŻKI, albo możesz wpisać pełną nazwę ścieżki do keytool w wierszu poleceń.
Dave MacLean
1
Jak zauważyli inni komentatorzy, Google wydaje się wydłużyć domyślny czas trwania certyfikatu debugowania, więc usunięcie pliku debug.keystore i wykonanie czyszczenia / kompilacji jest znacznie łatwiejsze.
Dave MacLean
81

W systemie Vista działało to:

  1. DOS: del c:\user\dad\.android\debug.keystore

  2. ECLIPSE: W projekcie wyczyść projekt. Zamknij Eclipse. Ponownie otwórz Eclipse.

  3. ECLIPSE: Uruchom emulator. Usuń aplikację z emulatora.

Możesz ruszać.

Byłem bardzo zmartwiony, kiedy powiedziałem ten błąd, ale naprawiłem go, czytając tutaj i grając przez około 10 minut.

coś
źródło
68
  • OKNA

Usuń: debug.keystore znajduje się w C:\Documents and Settings\\[user]\.android, Oczyść i skompiluj projekt.

  • Windows 7 przejdź do C:\Users\[username]\.androidi usuń plik debug.keystore.

Oczyść i zbuduj swój projekt.

  • PROCHOWIEC

Usuń swój magazyn kluczy znajdujący się w ~/.android/debug.keystoreOczyść i skompiluj projekt.

We wszystkich opcjach, jeśli nie możesz uzyskać nowego debug.keystore, po prostu uruchom ponownie eclipse.

Jorgesys
źródło
56

W Windows 7 jest na ścieżce

C:\Users\[username]\.android
  • Masz tę ścieżkę i usuń debug.keystore
  • wyczyść i zbuduj swój projekt.
AZ_
źródło
41

Jeśli certyfikat wygasa w trakcie debugowania projektu, musisz ręcznie odinstalować :

Wykonaj adb uninstall <package_name>w powłoce.

Solata
źródło
38

Na komputerze Mac otwórz terminal (powinien się otworzyć katalog bieżącego użytkownika), cd „.android” („ls”, aby sprawdzić, czy znajduje się debug.keystore). Wreszcie „rm debug.keystore”, aby usunąć plik.

Michael Biermann
źródło
36

Zestaw SDK systemu Android generuje dla Ciebie certyfikat podpisywania „debugowania” w magazynie kluczy o nazwie debug.keystore. Wtyczka Eclipse używa tego certyfikatu do podpisywania każdej generowanej kompilacji aplikacji.

Niestety certyfikat debugowania jest ważny tylko przez 365 dni. Aby wygenerować nowy, musisz usunąć istniejący debug.keystoreplik. Jego lokalizacja zależy od platformy - można go znaleźć w Preferencjach -> Android -> Kompilacja -> * Domyślny magazyn kluczy debugowania.

Jeśli używasz systemu Windows, wykonaj poniższe czynności.

DOS: del c: \ user \ dad.android \ debug.keystore

Zaćmienie: W projekcie wyczyść projekt. Zamknij Eclipse. Ponownie otwórz Eclipse.

Zaćmienie: Uruchom emulator. Usuń aplikację z emulatora.

Jeśli korzystasz z systemu Linux lub Mac, wykonaj poniższe czynności.

Ręcznie usuń debug.keystorez .androidfolderu.

Możesz znaleźć taki .androidfolder:home/username/.android

Uwaga: .androidplik domyślny zostanie ukryty.

Więc kliknij menu miejsc. W obszarze wybierz folder domowy. Pod kliknięciem w widoku, pod kliknięciem pokaż ukryte pliki, a następnie .androidfolder będzie widoczny.

Usuń debug.keystorez .android folder.

Następnie wyczyść swój projekt. Teraz Android wygeneruje nowy .android folderplik.

sravan
źródło
34

Miałem ten problem kilka tygodni temu. Najpierw próbowałem rozwiązać problem na stronie programisty Androida, ale bez powodzenia. Następnie ponownie zainstalowałem zestaw Android SDK, co rozwiązało mój problem.

Maurits Rijk
źródło
33

Hmmm. Ciekawe, jak wiele osób miało z tym nieco inne doświadczenia. Pamiętam dni, w których uznano to za znak, że oprogramowanie nie było gotowe do wydania, a zespół naprawiłby to, ZANIM użytkownicy zaczną widzieć te problemy :(

Moje własne doświadczenie było trochę inne. Próbowałem już Project> Clean, ale nadal mam ten sam błąd kompilacji. Następnie usunąłem debug.keystore (pod .android), tak jak powiedziała pierwsza odpowiedź. Nadal mam ten sam problem. Potem znowu zrobiłem porządek i cuda cudów, zadziałało!

Nie zrozumcie mnie źle, cieszę się, że udało mi się to dzięki wskazówkom w tym wątku. Ale wyraźnie czysty nie działa poprawnie i jak znalazł wygasły klucz po usunięciu magazynu kluczy? Najwyraźniej coś jest nie tak z Eclipse lub ADT - nie jestem pewien, który.

Matt J.
źródło
Eclipse ma tendencję do buforowania plików, więc czasami wymagane jest czyszczenie / odświeżanie, aby poinformować, że plik zmienił się na dysku.
navjotk
33

W systemie Ubuntu działało to:

Poszedłem do home/username/.androidi zmieniłem nazwę keystore.debugna keystoreold.debug. Następnie zamknąłem Eclipse, uruchomiłem Eclipse, a SDK utworzył nowy certyfikat keystore.debugw tym folderze.

Następnie musisz odinstalować / ponownie zainstalować aplikacje zainstalowane przez debugowanie USB lub niepodpisany APK („niepodpisany” APK = podpisany certyfikatem debugowania).

FreewheelNat
źródło
14

W przypadku systemu Windows XP przejdź do pliku debug.keystoreC:\Documents and Settings\%userprofile%\.android i usuń go , uruchom ponownie środowisko Eclipse, a teraz projekt zostanie skompilowany bez błędów.

Przykładowa ścieżka:

C:\Documents and Settings\raja.ap\.android\

czytaj tutaj-po-więcej .

radża
źródło
13

W systemie Windows debug.keystoreplik localtes jest w C:\Users\%Username%\.androidfolderze. Ten plik jest tworzony podczas instalacji zestawu Android SDK i jest ważny tylko przez rok. Po tym perodzie zaczniesz otrzymywać ten błąd Error getting final archive: Debug certificate expired on xx/xx/xxxx.

Aby usunąć ten błąd, po prostu usuń plik i ponownie uruchom program. W moim Eclipse włączyłem, Project->Build Automaticallywięc działało bezpośrednio, ale jeśli go wyłączyłeś, musisz wyczyścić projekt Project->Clean. Wybierz projekt i naciśnij OK. Następnie musisz zbudować go ręcznie. 3. kliknij swój projekt i wybierz Build project. (Uwaga - tę opcję zobaczysz tylko wtedy, gdy w menu Projektów została wyłączona funkcja Automatycznie buduj)

Aniket Thakur
źródło
13

Najpierw zamknij zaćmienie

Otwórz CMD za pomocą klawisza Windows + R lub przez Uruchom jako administrator

Wykonuje następujący krok

del "%USERPROFILE%\.android\debug.keystore"
keytool -genkey -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 30000

po tym zrestartuj zaćmienie.

3291565
źródło
7

Po zainstalowaniu Android SDK in Eclipsegeneruje dla Ciebie certyfikat podpisywania debugowania w magazynie kluczy o nazwie debug.keystore . Wtyczka Eclipse używa tego certyfikatu do podpisywania każdej generowanej kompilacji aplikacji.

Problem z tym certyfikatem debugowania polega na tym, że jest on ważny tylko przez rok lub 365 dni. If your Eclipse IDE uses an expired debug certificate, you will not be able to create and/or deploy an Android app.

Aby rozwiązać ten problem, wystarczy usunąć plik debug.keystore .

  1. Go to Preferences
  2. Android
  3. Build
  4. Default debug keystore

Tam powinieneś zobaczyć folder, w którym znajduje się plik. Po prostu usuń ten plik i możesz zacząć.

Po więcej informacji. możesz odwiedzić

http://developer.android.com/tools/publishing/app-signing.html

IntelliJ Amiya
źródło
0

Aby rozwiązać ten problem, wystarczy usunąć plik debug.keystore.

Domyślna lokalizacja przechowywania dla AVD to

W ~ / .android / na OS X i Linux.

W C: \ Documents and Settings \ .android \ w systemie Windows XP

W C: \ Users \ .android \ w systemie Windows Vista i Windows 7.

Zobacz także ten link, który może być pomocny.

http://developer.android.com/tools/publishing/app-signing.html

Girish Patel
źródło