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


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

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

我如何解决它?


1756
2018-02-03 19:26


起源


有人能说出为什么会这样吗? - Matical
您的系统日期是否已更改,导致其25年有效证书(在签署申请时建议)。它不是超过5岁的事件 - Trikaldarshi
您需要创建新的密钥库 - bynu022


答案:


删除您的调试证书 ~/.android/debug.keystore 上 Linux和Mac OS X.;目录是这样的 %USERPROFILE%/.android视窗

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


2185
2018-02-03 23:50



在Windows上,我不得不删除debug.keystore并进行一些更改以获得新的编译。我创建了一个新的测试项目,并生成了新的debug.keystore。 - Tomas
如果您“清理”项目,也会为当前项目重新生成它(转到项目 - >清理......) - adamnfish
@adamnfish:它在mac和eclipse上对我不起作用。 - rjoshi
现在有一个错误跟踪器问题要求修复它。请投票支持。 code.google.com/p/android/issues/detail?id=15370 - Manfred Moser
干净并没有解决我的问题,我需要手动rm~ / .android / debug.keystore。 - James Moore


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

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


318
2018-02-04 04:18



2011年4月6日接受更改为默认30年: review.source.android.com/#change,22128 - James Moore
如果删除debug.keystore,您将如何更新您的应用程序? - user739375
@ user739375,debug.keystore仅用于调试,单独的证书用于“生产”。 - Teo Klestrup Röijezon
@JamesMoore我真的很惊讶证书的年龄 - Trikaldarshi


删除所有开发.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天的有效期。你可以使用你喜欢的任何价值。


229
2017-10-29 21:01



我喜欢这个,因为它提供了更长期的修复,直到SDK提供更好的方式来处理即将到期的证书。 - Sean Aitken
我喜欢这个,因为我根本不需要使用eclipse。 - MattK
我假设这是在命令行下输入的。如果是这样,我得到“keytool is not recognized”错误。你能进一步解释这个方法吗? - Ted Betz
keytool可以在JDK的bin目录(任何操作系统)中找到。我通常将这个bin目录添加到我的PATH中,因此以上内容可以在任何地方使用。您可以找到JDK bin目录并将其添加到PATH,也可以在命令行上将完整路径名放到keytool。 - Dave MacLean
正如其他评论者指出的那样,Google似乎已经扩展了调试证书的默认持续时间,因此删除debug.keystore文件并进行清理/构建变得更加容易。 - Dave MacLean


在Vista上,这有效:

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

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

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

你已准备好出发。

当我说出这个错误时,我非常担心,但是我在阅读这里并且玩了10分钟后修复了它。


72
2017-08-01 02:43



+1表示删除“debug.keystore”。在我的计算机中,删除该文件并“清理”项目就足够了(即不必重新启动eclipse)。谢谢。 - MyNameIsZero


  • 视窗

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

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

清理并构建您的项目。

  • 苹果电脑

删除位于的密钥库 ~/.android/debug.keystore 清理并构建您的项目。

在所有选项中如果你不能获得新的debug.keystore只需重新启动eclipse。


63
2017-10-11 15:40





在Windows 7中,它位于路径上

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

51
2017-11-23 04:50





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

请执行 adb uninstall <package_name> 在一个壳里。


38
2017-12-13 14:26





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


34
2018-05-09 06:21