Fehler "Debug-Zertifikat abgelaufen" in Eclipse Android-Plugins

1898

Ich verwende Eclipse Android-Plugins, um ein Projekt zu erstellen, aber im Konsolenfenster wird folgende Fehlermeldung angezeigt:

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

Wie behebe ich das?

hap497
quelle
8
Kann jemand sagen, warum das passiert?
Matical
2
Hat sich Ihr Systemdatum geändert, ist das Zertifikat 25 Jahre gültig (wie beim Signieren des Antrags empfohlen)? Es ist nicht mehr als 5 Jahre alt
Trikaldarshi
Sie müssen einen neuen
Schlüsselspeicher

Antworten:

2241

Löschen Sie Ihre Debug - Zertifikat unter ~/.android/debug.keystoreauf Linux und Mac OS X ; Das Verzeichnis ist so etwas wie %USERPROFILE%/.androidunter Windows .

Das Eclipse-Plugin sollte dann ein neues Zertifikat generieren, wenn Sie das nächste Mal versuchen, ein Debug-Paket zu erstellen. Möglicherweise müssen Sie bereinigen und dann erstellen, um das Zertifikat zu generieren.

Christopher Orr
quelle
13
Unter Windows musste ich den debug.keystore löschen und einige Änderungen vornehmen, um eine neue Kompilierung in Gang zu bringen. Ich habe ein neues Testprojekt erstellt und der neue debug.keystore wurde generiert.
Tomas
117
Es wird auch für das aktuelle Projekt neu generiert, wenn Sie das Projekt "bereinigen" (gehen Sie zu Projekt -> Bereinigen ...)
adamnfish
11
Es gibt jetzt ein Bug-Tracker-Problem, bei dem dies behoben werden muss. Bitte stimmen Sie dafür. code.google.com/p/android/issues/detail?id=15370
Manfred Moser
61
Clean hat das Problem für mich nicht behoben, ich musste ~ / .android / debug.keystore von Hand rm.
James Moore
3
@James Das Löschen des Keystores von Hand ist der erste Teil der obigen Antwort. Sie müssen das Projekt bereinigen (oder neu erstellen), um einen neuen Schlüsselspeicher zu generieren.
Christopher Orr
334

Bei der Installation generiert das Android SDK ein debugSignaturzertifikat für Sie in einem Keystore namens debug.keystore. Das Eclipse-Plug-In verwendet dieses Zertifikat, um jeden generierten Anwendungsbuild zu signieren.

Leider ist ein Debug-Zertifikat nur 365 Tage gültig. Um eine neue zu generieren, müssen Sie die vorhandene debug.keystoreDatei löschen . Der Speicherort ist plattformabhängig - Sie finden ihn in den Einstellungen - Android - Build - Standard-Debug-Keystore .

Jeff Gilfelt
quelle
23
Eine Änderung, um den Standard 30 Jahre zu machen, wurde am 6. April 2011 akzeptiert: review.source.android.com/#change,22128
James Moore
Wie würden Sie Ihre Anwendung aktualisieren, wenn Sie Ihren debug.keystore löschen?
user739375
6
@ user739375, der debug.keystore wird nur zum Debuggen verwendet, ein separates Zertifikat wird für die "Produktion" verwendet.
Teo Klestrup Röijezon
@ JamesMoore Ich war wirklich erstaunt, wie alt das Zertifikat war
Trikaldarshi
254

Es ist mühsam, alle Ihre APK-Entwicklungsdateien löschen zu müssen, da das neue Zertifikat nicht übereinstimmt und Sie sie nicht in allen Ihren AVDs aktualisieren können. Sie müssen auch einen anderen Entwicklungs-MAP-API-Schlüssel erhalten. Es gibt noch eine andere Lösung.

Sie können Ihr eigenes Debug-Zertifikat debug.keystoremit dem gewünschten Ablauf erstellen . Tun Sie dies in dem .androidOrdner unter Ihrem HOMEVerzeichnis:

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

keytool.exefinden Sie im Ordner JDK bin (z C:\Program Files\Java\jdk1.6.0_31\bin\. B. unter Windows).

ADT legt den Vor- und Nachnamen auf dem Zertifikat als "Android Debug", die Organisationseinheit als "Android" und den aus zwei Buchstaben bestehenden Ländercode als "US" fest. Sie können die Werte für Organisation, Stadt und Bundesland als "Unbekannt" belassen. In diesem Beispiel wird eine Gültigkeit von 14000 Tagen verwendet. Sie können einen beliebigen Wert verwenden.

Dave MacLean
quelle
3
Ich mag das, weil es eine langfristigere Lösung bietet, bis das SDK eine bessere Möglichkeit bietet, mit dem ablaufenden Zertifikat umzugehen.
Sean Aitken
23
Ich mag das, weil ich Eclipse überhaupt nicht verwenden muss.
MattK
Ich gehe davon aus, dass dies unter der Kommandozeile eingegeben werden soll. Wenn ja, erhalte ich den Fehler "Keytool wird nicht erkannt". Können Sie diese Methode näher erläutern?
Ted Betz
1
Das Keytool befindet sich im bin-Verzeichnis Ihres JDK (jedes Betriebssystem). Normalerweise füge ich dieses bin-Verzeichnis meinem PATH hinzu, damit das oben genannte von überall aus funktioniert. Sie können entweder Ihr JDK-Bin-Verzeichnis finden und es Ihrem PATH hinzufügen, oder Sie können den vollständigen Pfadnamen in der Befehlszeile zu keytool eingeben.
Dave MacLean
1
Wie andere Kommentatoren bereits betont haben, scheint Google die Standarddauer des Debug-Zertifikats verlängert zu haben, sodass das Löschen der Datei debug.keystore und das Bereinigen / Erstellen viel einfacher ist.
Dave MacLean
81

Unter Vista funktionierte dies:

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

  2. ECLIPSE: Bereinigen Sie im Projekt das Projekt. Schließen Sie Eclipse. Öffnen Sie Eclipse erneut.

  3. ECLIPSE: Starten Sie den Emulator. Entfernen Sie die Anwendung aus dem Emulator.

Du bist startklar.

Ich war ziemlich besorgt, als ich diesen Fehler sagte, aber ich habe ihn behoben, indem ich hier gelesen und 10 Minuten lang herumgespielt habe.

etw
quelle
68
  • FENSTER

Löschen: debug.keystore in C:\Documents and Settings\\[user]\.android, Bereinigen und erstellen Sie Ihr Projekt.

  • Windows 7 gehen Sie zur C:\Users\[username]\.androidDatei debug.keystore und löschen Sie sie.

Reinigen und bauen Sie Ihr Projekt.

  • MAC

Löschen Sie Ihren Keystore in ~/.android/debug.keystoreClean und erstellen Sie Ihr Projekt.

Wenn Sie in allen Optionen den neuen debug.keystore nicht erhalten können, starten Sie eclipse einfach neu.

Jorgesys
quelle
56

In Windows 7 ist es am Pfad

C:\Users\[username]\.android
  • gehe zu diesem Pfad und entferne ihn debug.keystore
  • Reinigen und bauen Sie Ihr Projekt.
AZ_
quelle
41

Wenn ein Zertifikat während des Projekt-Debuggens abläuft, müssen Sie eine manuelle Deinstallation durchführen :

Bitte adb uninstall <package_name>in einer Shell ausführen .

Solata
quelle
38

Öffnen Sie auf einem Mac das Terminal (das Verzeichnis des aktuellen Benutzers sollte geöffnet sein) und die CD ".android" ("ls" zur Überprüfung von debug.keystore ist vorhanden). Zum Schluss "rm debug.keystore", um die Datei zu entfernen.

Michael Biermann
quelle
36

Das Android SDK generiert ein "Debug" -Signaturzertifikat für Sie in einem Schlüsselspeicher namens. debug.keystoreDas Eclipse-Plug-In verwendet dieses Zertifikat, um jeden generierten Anwendungsbuild zu signieren.

Leider ist ein Debug-Zertifikat nur 365 Tage gültig. Um eine neue zu generieren, müssen Sie die vorhandene debug.keystoreDatei löschen . Der Speicherort ist plattformabhängig - Sie finden ihn in den Einstellungen -> Android -> Erstellen -> * Standard-Debug-Keystore.

Wenn Sie Windows verwenden, führen Sie die folgenden Schritte aus.

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

Eclipse: Bereinigen Sie im Projekt das Projekt. Schließen Sie Eclipse. Öffnen Sie Eclipse erneut.

Eclipse: Starten Sie den Emulator. Entfernen Sie die Anwendung aus dem Emulator.

Wenn Sie Linux oder Mac verwenden, führen Sie die folgenden Schritte aus.

Manuell debug.keystoreaus dem .androidOrdner löschen .

Sie finden den .androidOrdner folgendermaßen:home/username/.android

Hinweis: Die Standarddatei .androidwird ausgeblendet.

Klicken Sie also auf das Ortsmenü. Unter Home-Ordner auswählen. Klicken Sie unter "Ansicht klicken" auf "Versteckte Dateien anzeigen" und der .androidOrdner wird angezeigt.

Löschen Sie debug.keystoreaus dem .android folder.

Dann bereinigen Sie Ihr Projekt. Jetzt generiert Android eine neue .android folderDatei.

sravan
quelle
34

Ich hatte dieses Problem vor ein paar Wochen. Ich habe zuerst die Fehlerbehebung auf der Android-Entwicklerseite versucht , aber ohne Glück. Danach habe ich das Android SDK neu installiert, wodurch mein Problem gelöst wurde.

Maurits Rijk
quelle
33

Hmmm. Interessant, wie viele Menschen damit etwas unterschiedliche Erfahrungen gemacht haben. Ich erinnere mich an die Tage, als dies als Zeichen dafür galt, dass die Software nicht zur Veröffentlichung bereit war und das Team sie tatsächlich beheben würde, BEVOR Benutzer diese Probleme bemerkten :(

Meine eigene Erfahrung war nur ein bisschen anders. Ich hatte bereits Project> Clean ausprobiert, bekam aber immer noch den gleichen Build-Fehler. Dann habe ich den debug.keystore (unter .android) gelöscht, genau wie in der ersten Antwort angegeben. Habe immer noch das gleiche Problem. Dann habe ich wieder geputzt und Wunder der Wunder, es hat funktioniert!

Versteh mich jetzt nicht falsch, ich bin froh, dass ich es dank der Hinweise in diesem Thread zum Laufen gebracht habe. Aber klar, sauber funktioniert nicht richtig, und wie hat es einen abgelaufenen Schlüssel gefunden, nachdem ich den Keystore gelöscht habe ??? Offensichtlich stimmt etwas mit Eclipse oder dem ADT nicht - nicht so sicher, welches.

Matt J.
quelle
Eclipse neigt dazu, Dateien zwischenzuspeichern, daher ist manchmal eine Bereinigung / Aktualisierung erforderlich, um mitzuteilen, dass sich die Datei auf der Festplatte geändert hat.
Navjotk
33

Unter Ubuntu funktionierte dies:

Ich ging zu home/username/.androidund ich benannte keystore.debugum keystoreold.debug. Ich habe dann Eclipse geschlossen, Eclipse gestartet und das SDK hat ein neues Zertifikat keystore.debugin diesem Ordner erstellt.

Sie müssen dann Apps deinstallieren / neu installieren, die Sie über USB-Debugging oder ein nicht signiertes APK installiert haben ("nicht signiertes" APK = signiert mit Debug-Zertifikat).

FreilaufNat
quelle
14

Für Windows XP gehen Sie zu C:\Documents and Settings\%userprofile%\.androidund löschen Sie die Datei debug.keystore , starten Sie die Eclipse neu und jetzt wird Ihr Projekt ohne Fehler erstellt.

Beispielpfad:

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

Lesen Sie hier für mehr .

Raja
quelle
13

In der Windows- debug.keystoreDatei befinden sich Localtes im C:\Users\%Username%\.androidOrdner. Diese Datei wird bei der Installation Ihres Android SDK erstellt und ist nur ein Jahr gültig. Nach dieser Zeit wird dieser Fehler angezeigt Error getting final archive: Debug certificate expired on xx/xx/xxxx.

Um diesen Fehler zu beheben, löschen Sie einfach die Datei und führen Sie das Programm erneut aus. In meiner Eclipse habe ich aktiviert, Project->Build Automaticallydamit es direkt funktioniert, aber falls Sie es deaktiviert haben, müssen Sie das Projekt bereinigen Project->Clean. Wählen Sie Ihr Projekt aus und drücken Sie OK. Dann müssen Sie es manuell erstellen. 3. Klicken Sie auf Ihr Projekt und wählen Sie Build project. (Hinweis - Diese Option wird nur angezeigt, wenn Sie die Funktion "Automatisch erstellen" in Ihrem Projektmenü deaktiviert haben.)

Aniket Thakur
quelle
13

Schließen Sie zuerst die Sonnenfinsternis

Öffnen Sie CMD mit der Fenstertaste + R oder über Als Administrator ausführen

Befolgen Sie den folgenden Schritt

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

Nach diesem Neustart Eclipse.

3291565
quelle
7

Nach der Installation von Android SDK in Eclipsewird ein Debug-Signaturzertifikat für Sie in einem Keystore namens debug.keystore generiert . Das Eclipse-Plug-In verwendet dieses Zertifikat, um jeden generierten Anwendungsbuild zu signieren.

Das Problem mit diesem Debug-Zertifikat besteht nun darin, dass es nur ein Jahr oder 365 Tage gültig ist. If your Eclipse IDE uses an expired debug certificate, you will not be able to create and/or deploy an Android app.

Um dieses Problem zu beheben, müssen Sie lediglich die Datei debug.keystore löschen .

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

Dort sollte der Ordner angezeigt werden, in dem sich die Datei befindet. Löschen Sie einfach diese Datei und Sie können loslegen.

Für mehr Information. du kannst besuchen

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

IntelliJ Amiya
quelle
0

Um dieses Problem zu beheben, löschen Sie einfach die Datei debug.keystore.

Der Standardspeicherort für AVDs ist

In ~ / .android / unter OS X und Linux.

In C: \ Dokumente und Einstellungen \ .android \ unter Windows XP

In C: \ Users \ .android \ unter Windows Vista und Windows 7.

Siehe auch diesen Link, der hilfreich sein kann.

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

Girish Patel
quelle