bash脚本没有读取local.properties

时间:2015-02-19 18:54:17

标签: java android bash cocos2d-x

我根据官方Cocos2dx样本创建了一个项目。在脚本中,它尝试使用以下内容读取本地属性:

_LOCALPROPERTIES_FILE=$(dirname "$0")"/local.properties"
if [ -f "$_LOCALPROPERTIES_FILE" ]
then
    [ -r "$_LOCALPROPERTIES_FILE" ] || die "Fatal Error: $_LOCALPROPERTIES_FILE exists but is unreadable"

    # strip out entries with a "." because Bash cannot process variables with a "."
    _PROPERTIES=`sed '/\./d' "$_LOCALPROPERTIES_FILE"`
    for line in "$_PROPERTIES"; do
        declare "$line";
        echo "$line";
    done
fi

然后尝试获取NDK_ROOT:

if [ -z "${NDK_ROOT+aaa}" ];then
echo "NDK_ROOT not defined. Please define NDK_ROOT in your environment or in local.properties"
exit 1
fi

如果我在local.properties中定义NDK根目录,如下所示:

NDK_ROOT = /用户/为myuser /文档/机器人-NDK-r9d

它无法识别该属性,但我确实看到此行在控制台中回显。为什么这个脚本无法将local.properties读入变量?这是脚本中的错误还是我如何定义我的属性?我怀疑脚本不正确。我知道我可以定义环境变量,但我真的想将这些变量保存在我的local.properties中,而不是混淆各种bash配置文件。

1 个答案:

答案 0 :(得分:0)

local.properties 旨在由构建系统(ant或其他)读取,以传递构建不http://ant.apache.org/manual/properties.html) > shell环境。此外, local.properties 不应该被修改,因为它是由Android构建系统生成的。

您可能希望定义custom_rules.xml文件以实现您想要执行的操作。这个帖子Android custom build using Ant可能会有所帮助。