1

我正在使用 java 构建工具 ant 在服务器上编译 Android 应用程序。

当我以 root 用户身份运行以下命令时,构建成功:

export ANT_HOME=/usr/local/ant
export JAVA_HOME=/usr/local/jdk
export PATH=${PATH}:${ANT_HOME}/bin
cd /path/to/android/file
/usr/local/ant/bin/ant release

但是,当我以 netuser(或我测试过的任何其他用户)身份运行以下命令时:

export ANT_HOME=/usr/local/ant
export JAVA_HOME=/usr/local/jdk
export PATH=${PATH}:${ANT_HOME}/bin
cd /path/to/android/file
sudo /usr/local/ant/bin/ant release

我收到以下错误:

BUILD FAILED
/path/to/android/file/build.xml:83: The following error occurred while executing this line:
/usr/share/android-sdk/tools/ant/build.xml:206: Class org.apache.tools.ant.taskdefs.condition.And doesn't support the nested "matches" element.

我尝试更改 sudoers 文件,甚至使用 netuser ALL=(ALL) ALL 为 netuser 授予所有权限,但我得到相同的结果......有人能告诉我我做错了什么吗?

提前感谢您的帮助。

4

1 回答 1

2

我怀疑您在 as 运行时没有选择环境变量sudo。错误消息表明它使用的 Ant 任务版本比您预期的要旧。

要查看是否是这种情况,请尝试以下操作(在导出之后),看看它是否是您所期望的:

sudo env

要保留环境变量,请修改sudoers文件或使用-E选项。

于 2013-01-21T12:15:55.460 回答