解决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系统
- 删除
debug.keystore
文件:- 打开命令提示符(可通过Windows键 + R 打开“运行”窗口,输入
cmd
并回车;或右键以管理员身份运行)。 - 执行命令
del "%USERPROFILE%\.android\debug.keystore"
。
- 打开命令提示符(可通过Windows键 + R 打开“运行”窗口,输入
- 重新生成证书(可选):可使用
keytool
命令创建自定义有效期的调试证书。在命令提示符中执行:
1 |
|
此命令创建了一个有效期为30000天的调试证书。
3. 重启Eclipse:关闭并重新打开Eclipse。
4. 清理并构建项目:
- 若Eclipse中启用了Project -> Build Automatically
,直接运行程序即可。
- 若未启用,需手动清理项目(Project -> Clean
,选择项目并点击确定),然后手动构建项目(右键点击项目,选择Build project
)。
Linux和Mac系统
- 手动删除
debug.keystore
文件:- 打开终端。
- 对于Mac,在终端中输入
cd ~/.android
,然后输入rm debug.keystore
删除文件。 - 对于Linux,可通过
home/username/.android
路径找到.android
文件夹(默认该文件夹为隐藏文件夹,可点击“Places”菜单,选择“Home Folder”,点击“View”,选择“Show Hidden Files”使.android
文件夹可见),然后删除debug.keystore
文件。
- 清理项目:在Eclipse中清理项目(
Project -> Clean
),Android会生成新的debug.keystore
文件。
其他注意事项
如果证书在项目调试过程中过期,需手动卸载应用:在shell中执行adb uninstall <package_name>
。
核心代码
创建自定义有效期的调试证书
1 |
|
此命令在.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/