Eclipse Android插件中的“调试证书已过期”错误


1897

我正在使用Eclipse Android插件来构建项目,但是在控制台窗口中出现此错误:

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

我如何解决它?


8
有人可以告诉为什么会这样吗?
Matical

2
您的系统日期是否更改,导致其25年有效证书(按签署申请时的建议)。它的活动不超过5年
-Trikaldarshi

您需要创建新的密钥库
bynu022

Answers:


2241

~/.android/debug.keystoreLinux和Mac OS X上删除您的调试证书;该目录类似于Windows%USERPROFILE%/.android上的目录。

当您下次尝试构建调试包时,Eclipse插件应会生成一个新证书。您可能需要先清理,然后构建才能生成证书。


13
在Windows上,我必须删除debug.keystore并进行一些更改才能进行新的编译。我创建了一个新的测试项目,并生成了新的debug.keystore。
托马斯

117
如果您“清理”该项目(转到“项目->清理...”),它将也为当前项目重新生成
adamnfish

11
现在存在一个错误跟踪器问题,要求修复此问题。请投票。code.google.com/p/android/issues/detail?id=15370
Manfred Moser

61
清理并没有为我解决问题,我需要手动rm〜/ .android / debug.keystore。
詹姆斯·摩尔

3
@James手动删除密钥库是上面答案的第一部分。清理项目(或重建)是生成新密钥库所需要做的。
Christopher Orr

334

安装后,Android SDK将debug在名为的密钥库中为您生成签名证书debug.keystore。Eclipse插件使用此证书对生成的每个应用程序构建进行签名。

不幸的是,调试证书仅在365天有效。要生成一个新debug.keystore文件,必须删除现有文件。它的位置取决于平台-您可以在Preferences-Android-Build-Default debug keystore中找到它。


23
2011年4月6日,接受更改以默认30年的更改被接受:review.source.android.com/#change,22128
James Moore

如果删除debug.keystore,将如何更新应用程序?
user739375 2011年

6
@ user739375,debug.keystore仅用于调试,单独的证书用于“生产”。
张栋梁KlestrupRöijezon

@JamesMoore我真的很惊讶证书的年龄
Trikaldarshi13年

254

必须删除所有开发.apk文件,这很痛苦,因为新证书不匹配,因此您无法在所有AVD中升级它们。您还必须获得另一个开发MAP-API密钥。还有另一种解决方案。

您可以根据需要设置自己的调试证书debug.keystore。在.android目录下的文件夹中执行此操作HOME

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

keytool.exe可以在JDK bin文件夹(例如C:\Program Files\Java\jdk1.6.0_31\bin\Windows)中找到。

ADT将证书上的名字和姓氏设置为“ Android Debug”,组织单位设置为“ Android”,并将两个字母的国家/地区代码设置为“ US”。您可以将组织,城市和州的值保留为“未知”。本示例使用14000天的有效期。您可以使用任何喜欢的值。


3
我之所以这样,是因为它提供了更长期的修复,直到SDK提供了一种更好的方式来处理即将到期的证书。
肖恩·艾特肯

23
我喜欢这个,因为我根本不需要使用Eclipse。
MattK 2011年

我假设这将在命令行下键入。如果是这样,我收到“无法识别键盘工具”错误。您可以进一步解释这种方法吗?
特德·贝兹

1
可以在JDK的bin目录(任何操作系统)中找到keytool。我通常将此bin目录添加到PATH中,因此以上内容可在任何地方使用。您可以找到JDK bin目录并将其添加到PATH,也可以在命令行中将完整路径名放入keytool。
Dave MacLean

1
正如其他评论者所指出的那样,Google似乎已经延长了调试证书的默认期限,因此删除debug.keystore文件并进行清理/构建要容易得多。
Dave MacLean

81

在Vista上,此方法有效:

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

  2. ECLIPSE:在“项目”中,清理项目。关闭Eclipse。重新打开Eclipse。

  3. ECLIPSE:启动模拟器。从仿真器中删除该应用程序。

你已准备好出发。

当我说那个错误时,我非常担心,但是我从这里阅读并玩了10分钟修正了它。


68
  • 视窗

删除: 位于的 debug.keystoreC:\Documents and Settings\\[user]\.android,清理并构建您的项目。

  • Windows 7 转到C:\Users\[username]\.android并删除debug.keystore文件。

清理并构建您的项目。

  • 苹果电脑

删除“ ~/.android/debug.keystore清理”中的密钥库并构建项目。

在所有选项中,如果您无法获得新的debug.keystore,则只需重新启动eclipse。


56

在Windows 7中

C:\Users\[username]\.android
  • 转到此路径并删除 debug.keystore
  • 清理并构建您的项目。

41

如果证书在项目调试过程中过期,则必须手动卸载

adb uninstall <package_name>在外壳中执行 。


38

在Mac上,打开终端(应该打开当前用户的目录),打开cd“ .android”(“ ls”以验证debug.keystore是否存在)。最后“ rm debug.keystore”删除文件。


36

Android SDK在称为的密钥库中为您生成“调试”签名证书 debug.keystore。Eclipse插件使用此证书对生成的每个应用程序构建进行签名。

不幸的是,调试证书仅在365天有效。要生成一个新debug.keystore文件,必须删除现有文件。它的位置取决于平台-您可以在偏好设置 -> Android- > 构建中找到它 -> *默认调试密钥库中。

如果您使用的是Windows,请按照以下步骤操作。

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

Eclipse:在“项目”中,清洁项目。关闭Eclipse。重新打开Eclipse。

Eclipse:启动模拟器。从仿真器中删除该应用程序。

如果您使用的是Linux或Mac,请按照以下步骤操作。

debug.keystore.android文件夹中手动删除。

您可以找到以下.android文件夹:home/username/.android

注意:默认.android文件将被隐藏。

因此,点击地点菜单。在选择主文件夹下。在“单击查看”下,单击“显示隐藏文件”,然后该.android文件夹将可见。

debug.keystore从中删除.android folder

然后清理您的项目。现在,Android将生成一个新.android folder文件。



33

嗯 有趣的是,有多少人对此有不同的经历。我记得有一天,这被认为是该软件尚未准备好发布的迹象,在用户开始看到这些问题之前,团队实际上会对其进行修复:(

我自己的经历与众不同。我已经尝试过Project> Clean,但仍然遇到相同的构建失败。然后,就像第一个答案所说的那样,删除了debug.keystore(在.android下)。仍然有同样的问题。然后我又做了一次清洁,发现奇迹,它起作用了!

现在请不要误解我,我很高兴由于该线程中的提示而使它正常工作。但是显然清除工作不正确,在删除密钥存储区后如何找到过期的密钥???显然,Eclipse或ADT出了点问题-不确定哪一个。


Eclipse倾向于缓存文件,因此有时需要清除/刷新以使其知道磁盘上的文件已更改。
navjotk 2012年

33

在Ubuntu上,这有效:

我去了,home/username/.android并改名keystore.debugkeystoreold.debug。然后,我关闭Eclipse,启动Eclipse,然后SDK keystore.debug在该文件夹中创建了新证书。

然后,您必须卸载/重新安装通过USB调试或未签名的APK(“未签名的” APK =已通过调试证书签名)安装的应用程序。


14

对于Windows XP,请转到C:\Documents and Settings\%userprofile%\.android并删除debug.keystore文件,重新启动eclipse,现在您的项目就可以正常构建了。

示例路径:

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

阅读更多


13

在Windows中,debug.keystore文件位于C:\Users\%Username%\.android文件夹中。该文件是在您安装android SDK时创建的,仅有效一年。在学习之后,您将开始得到此错误Error getting final archive: Debug certificate expired on xx/xx/xxxx

要消除此错误,只需删除文件并再次运行程序。在我的Eclipse中,我启用了Project->Build Automatically它,因此它可以直接工作,但是如果禁用了它,则需要清理项目Project->Clean..选择项目,然后按OK。然后,您将需要手动构建它。第三次单击您的项目,然后选择Build project。(注意-如果您禁用了“项目”菜单中的“自动构建”功能,则只会看到此选项)


13

首先关闭日食,然后

通过Window 键+ R或通过以管理员身份运行来打开CMD

遵循以下步骤

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

在重启Eclipse之后。


7

安装之后Android SDK in Eclipse,它将在名为debug.keystore密钥库中为您生成调试签名证书。。Eclipse插件使用此证书对生成的每个应用程序构建进行签名。

现在,此调试证书的问题在于它仅有效一年或365天。 If your Eclipse IDE uses an expired debug certificate, you will not be able to create and/or deploy an Android app

要解决此问题,您需要做的就是删除debug.keystore文件。

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

在那里,您应该看到文件所在的文件夹。只需删除该文件,就可以了。

有关更多信息。您可以访问

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.