为命令行构建设置debug.keystore的位置而不重写Ant目标

时间:2012-09-09 00:19:57

标签: java android build

当我运行" ant debug"从命令行,我收到以下错误消息:

[apkbuilder] keytool错误:java.io.FileNotFoundException:\ stulab2 \ folderRedir ection $ .android \ debug.keystore(系统找不到指定的路径)

BUILD FAILED
e:\programs\java\android-sdk\tools\ant\build.xml:919: The following error occurred while executing this line:
e:\programs\java\android-sdk\tools\ant\build.xml:930: The following error occurred while executing this line:
e:\programs\java\android-sdk\tools\ant\build.xml:295: com.android.sdklib.build.ApkCreationException: Unable to get debug signature key
        at com.android.sdklib.build.ApkBuilder.getDebugKey(ApkBuilder.java:277)

随后是一个很长的堆栈跟踪。

问题是我在公共计算机上,并且没有对Ant期望找到.android \ debug.keystore的文件夹的写访问权。一些研究在Android文档中发现了以下内容:

  

如有必要,您可以更改调试密钥库/密钥的位置/名称,或提供要使用的自定义调试密钥库/密钥。但是,任何自定义调试密钥库/密钥必须使用与默认调试密钥相同的密钥库/密钥名称和密码(如上所述)。 (要在Eclipse / ADT中执行此操作,请转到Windows>首选项> Android>构建。)

不幸的是,这并没有解释如何使用命令行工具更改调试密钥库的位置。

几个月前,有人在stackoverflow上问了基本相同的问题:How can I specify location of debug keystore for Android ant debug builds?。到目前为止,最好的答案是重写-do-debug目标。据我所知,我还需要设置指定的属性。

这个答案的一个问题是它使用与发布版本相同的特性。此外,简单地设置正确的属性而不是重写(和调试)整个-do-debug目标会很好。有谁知道是否有可以设置的属性来指定debug.keystore文件的位置?

1 个答案:

答案 0 :(得分:0)

.bashrc中,将ANDROID_SDK_HOME环境变量设置为Android SDK安装位置。例如:

export ANDROID_SDK_HOME="/home/myusername/path/to/androidsdk"

然后,在新的shell中,运行ant debug会创建一个${ANDROID_SDK_HOME}/.android/debug.keystore文件。

或者,无需全局更改变量,您只需运行:

ANDROID_SDK_HOME="/home/myusername/path/to/androidsdk" ant debug