Eclipse运行Android程序报Error generating final archive: Unable to get debug signature key错误解决方法

时间:2022-09-03 22:09:44

今天要写一篇TraceView的使用文档,结果在运行示例程序的时候,报下面错误:

Error generating final archive: Unable to get debug signature key

因此暂时中断了文档编写,小郁闷。

搜了一下网上的帖子,解决办法不多,看到很多“重新安装”的字眼就来气,好生厌恶。

花了20分钟,最终搞定,我的解决方法如下:

1.进入Eclipse->Window->Preferences->Android->Build

会看到有一个default debug keystore的选项,

我的对应内容为:

/home/user/.android/debug.keystore

2.从报错信息来看,就是android无法执行在对apk签默认的debug签名。而上面所找的那个路径下的debug.keystore就是用来做这个事情的。

我试着修改这个路径,发现竟然改不了!!我就呵呵了,具体哪里改真不知道。。。

3.于是打开终端,进入上面路径:

cd /home/user/.android/

4.查看下面的内容:

ls -al

5.我发现该路径下压根没有所谓的debug.keystore文件,只有下面两个文件:

adbkey  adbkey.pub

6.奇了怪,妈蛋。怪不得没法子签名。虽然记得这个东西android和eclipse应该是会自动生成的,但现在的确是没有,具体原因想不通。

前两周把Ubuntu系统从10.04LTS升级到12.04LTS,因为是做系统的同事给的镜像升级的,所以我怀疑最有可能是环境配置的问题(其实大部分工具问题都是配置问题造成的嘛)

7.当下想着自己手动生成一个debug.keystore文件算了,刚才搜索别人的帖子时刚好睥见了一段信息,如果自己要生成,就新建一个文本debug.keystore,然后在里面的填入内容如下:

Keystore name: "debug.keystore"
Keystore password: "android"
Key alias: "androiddebugkey"
Key password: "android"
CN: "CN=Android Debug,O=Android,C=US"

8.将这个文件拷贝到/home/user/.android/目录下面。问题出现了,竟然没有权限!

9.这下引起了我的一个关注,难道是权限问题?重新进入终端,进入/home/user/目录:

cd /home/user/

10.查看所有文件权限:

ls -al

11.结果如下(只摘取了部分内容):

user@swd2:~$ ls -al
total 83976
drwxr-xr-x 42 user user     4096 11月 18 17:33 .
drwxr-xr-x  3 root root       17 10月 16 10:16 ..
drwxr-x---  2 root user       36 10月 24 11:51 .android
-rw-------  1 user user    17635 11月 10 10:41 .bash_history
-rw-r--r--  1 user user      220 10月 16 10:16 .bash_logout
-rw-r--r--  1 user user     3618 10月 16 16:37 .bashrc
-rw-r--r--  1 user user     3486 10月 16 10:16 .bashrc~
drwxrwxr-x  2 user user       52 10月 24 17:41 .beyondcompare
12.果然.android的权限只有750,刚好我还安装了beyondcompare工具,它的却是775

13.于是,我尝试先改下权限试试:

sudo chmod 775 .android/

14.我没有着急就把刚才自己手动新建的debug.keystore文件拷贝到/home/user/.android/目录下面去,而是直接重新在Eclipse中尝试运行我的示例应用。

15.幸福来得就是这么突然!结果,直接可以运行了,报错已经消失!

16.事后分析:我重新进入/home/user/.android/目录,发现,此时,下面已经生成了另外两个文件:

adbkey  adbkey.pub  avd  debug.keystore

因此,大致的原因我们可以猜想得来了,由于Eclipse没有权限去生成该文件,所以报错。

17.以上,希望能对同样遇到这样问题的朋友提供到小帮助。收工,继续写文档的干活!