无法重新创建丢失的调试密钥库?

21

我是Android编程的新手,刚试图运行我的构建,却收到了这条信息

Execution failed for task ':app:validateDebugSigning'.
> Unable to recreate missing debug keystore.

这是什么意思?我正在使用Android Studio。


检查您的<user>/.android目录。您应该拥有一个debug.keystore或其他用于签名构建的密钥。至少,Eclipse是这样工作的。确保该目录未被锁定,并且可被使用的程序访问。 - Nabren
1
我在Windows 7上解决了这个问题,只需在Windows 7的环境变量中设置ANDROID_SDK_HOME为C:\ Users \ guillermo \ .android \(其中guillermo是我的Windows用户名)即可。 - gtamborero
请确保不要写入受保护的目录(整个.android)。同时记得每次更改环境变量后重新启动Windows! - gtamborero
3个回答

30

我刚刚解决了同样的问题,我的~/.android文件夹权限不正确。

具体来说,Android Studio需要能够写入该文件夹。默认情况下,我的安装将该目录创建为root所有,并且只有root可写。这是一个问题,因为Android Studio以我的身份运行,因此没有权限在那里写入。

您可以通过在Terminal.app(或任何终端应用程序)中执行以下命令来确认此操作:

你可能会看到像这样的权限:

> cd ~
> ls -la
...cut...
drwxr-xr-x    7 root  andyo      238 Mar 31 14:00 .android
...cut...

问题在于,由于根用户拥有该目录并且权限设置为755,则非根用户无法向该目录写入。

解决方法是,只需将该目录的所有权更改为您自己(您的主目录中不应该有任何根拥有的目录)。

> sudo chown -R andyo .android
> ls -la
...cut...
drwxr-xr-x    7 andyo  andyo      238 Mar 31 14:00 .android
...cut...

我的情况下没有修复错误。也许那不是debug.keystore文件的位置?你知道我可以在哪里检查吗? - Chris
波浪号在您的Android文件夹之前代表什么?您可能是一个主要的Linux用户吧? - Andrew S
它表示当前用户的主目录。http://superuser.com/questions/211355/what-does-the-mean-in-a-file-path - Andy Obusek

0
也许是因为新的“即时运行”功能。我的.android文件夹的写入权限是正常的。但是只有在我删除了整个“.android”文件夹之后,它才能正常工作。然后我不得不创建一个新的模拟器,这样才会有一个新的debug.keystore。

0

以管理员身份运行IDE对我有帮助。 这是我的电脑权限问题。 如果有人需要,就留在这里了。


我认为这是“走错了兔子洞”。你不应该需要以“root”身份运行开发IDE才能使其工作。 - GhostCat
为什么? - user3575956
1
一般来说,这是个不好的做法。 "root" 用户在您的系统中拥有访问所有事物的权限。 您应该尽可能地减少需要"root"权限的事物。 换句话说,您应该努力修复目录的错误权限,而不是将整个应用程序作为"root"运行。 - GhostCat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接