java - 设置命令行构建的 debug.keystore 位置,无需重写 Ant 目标

标签 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)

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

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

If necessary, you can change the location/name of the debug keystore/key or supply a custom debug keystore/key to use. However, any custom debug keystore/key must use the same keystore/key names and passwords as the default debug key (as described above). (To do so in Eclipse/ADT, go to Windows > Preferences > Android > Build.)

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

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

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

最佳答案

.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

关于java - 设置命令行构建的 debug.keystore 位置,无需重写 Ant 目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12335543/

相关文章:

java - 如何以最简单的方式计算阶跃函数的积分?

java - 如何避免写入太多数据输出而阻塞线程?

android - 程序类型已存在 : android. support.customtabs.ICustomTabsCallback$Stub$Proxy

java - 将GSON中的值放入android中的TextView

java - 了解 Java 无符号数

android - android中如何进行同步?

java - 约束集不起作用

安卓 DatePicker- GregorianCalendar-00 :00:00 UTC - getTimeInMillis()

linux - 即使文件在路径中,也找不到 rpmbuild 错误文件

maven - 如何在 Intellij Idea 中找出未使用的依赖项 Maven