2015-02-19 3 views
0

Я создал проект, основанный на официальном образце Cocos2dx. В сценарии, он пытается прочитать локальные свойства при помощи следующих действий:bash скрипт не читает local.properties

_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 

Если я определяю корень NDK в моих local.properties как следующее:

NDK_ROOT =/Users/MyUser/Документы/андроид-NDK-R9D

Он не признает собственность, хотя я вижу эту линию эхом в консоли. Почему этот скрипт не считывает переменные local.properties в переменные? Это ошибка в скрипте или с тем, как я определил свое свойство? Я подозреваю, что сценарий неверен. Я знаю, что я могу определить переменные среды, но я действительно хотел бы сохранить эти переменные в своих локальных свойствах, а не в грязных профилях bash.

ответ

0

local.properties предназначен для считывания системой сборки (муравей или иным образом), чтобы передать пары ключ-значение (http://ant.apache.org/manual/properties.html) для сборки не среда оболочки. Кроме того, local.properties не должен изменяться, учитывая, что он генерируется системой сборки Android.

Возможно, вы захотите определить файл custom_rules.xml для достижения того, что вы хотели бы сделать. Эта тема Android custom build using Ant может помочь.

+0

Окружающая среда оболочки может быть частью системы сборки, что имеет место с сборками Cocos2dx. – stevebot

+0

Вы строите с муравью, затмением, градиентом или другим? – odexcide

Смежные вопросы