解决Eclipse Android插件中“Debug certificate expired”错误

解决Eclipse Android插件中“Debug certificate expired”错误

技术背景

在使用Eclipse Android插件开发Android应用时,Android SDK会在名为debug.keystore的密钥库中为开发者生成一个“debug”签名证书,Eclipse插件使用此证书对生成的每个应用构建进行签名。然而,这个调试证书仅在365天内有效,一旦过期,Eclipse IDE将无法创建和/或部署Android应用,会出现“Debug certificate expired”错误。

实现步骤

通用方法

要解决此问题,需删除现有的debug.keystore文件,其位置因操作系统而异:

  • Linux和Mac OS X:位于~/.android/debug.keystore
  • Windows XP:在C:\Documents and Settings\%userprofile%\.android
  • Windows Vista和Windows 7:路径为C:\Users\%Username%\.android

不同操作系统的具体操作

Windows系统

  1. 删除debug.keystore文件
    • 打开命令提示符(可通过Windows键 + R 打开“运行”窗口,输入cmd并回车;或右键以管理员身份运行)。
    • 执行命令del "%USERPROFILE%\.android\debug.keystore"
  2. 重新生成证书(可选):可使用keytool命令创建自定义有效期的调试证书。在命令提示符中执行:
1
keytool -genkey -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 30000

此命令创建了一个有效期为30000天的调试证书。
3. 重启Eclipse:关闭并重新打开Eclipse。
4. 清理并构建项目
- 若Eclipse中启用了Project -> Build Automatically,直接运行程序即可。
- 若未启用,需手动清理项目(Project -> Clean,选择项目并点击确定),然后手动构建项目(右键点击项目,选择Build project)。

Linux和Mac系统

  1. 手动删除debug.keystore文件
    • 打开终端。
    • 对于Mac,在终端中输入cd ~/.android,然后输入rm debug.keystore删除文件。
    • 对于Linux,可通过home/username/.android路径找到.android文件夹(默认该文件夹为隐藏文件夹,可点击“Places”菜单,选择“Home Folder”,点击“View”,选择“Show Hidden Files”使.android文件夹可见),然后删除debug.keystore文件。
  2. 清理项目:在Eclipse中清理项目(Project -> Clean),Android会生成新的debug.keystore文件。

其他注意事项

如果证书在项目调试过程中过期,需手动卸载应用:在shell中执行adb uninstall <package_name>

核心代码

创建自定义有效期的调试证书

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

此命令在.android文件夹下创建了一个有效期为14000天的调试证书。keytool.exe可在JDK的bin文件夹中找到(如Windows系统下的C:\Program Files\Java\jdk1.6.0_31\bin\)。

最佳实践

  • 定期检查调试证书的有效期,提前创建新的调试证书,避免在开发过程中遇到证书过期问题。
  • 创建自定义有效期较长的调试证书,减少频繁处理证书过期问题的麻烦。

常见问题

  • 删除debug.keystore文件后仍报错:可能是Eclipse缓存问题,可尝试关闭Eclipse后重新打开,再次清理并构建项目。
  • 找不到debug.keystore文件:可通过Preferences -> Android -> Build -> Default debug keystore查看其具体位置。

解决Eclipse Android插件中“Debug certificate expired”错误
https://119291.xyz/posts/solve-debug-certificate-expired-error-in-eclipse-android-plugins/
作者
ww
发布于
2025年5月23日
许可协议