Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用Ant从中读取project.properties和库项目的所有路径?_Android_Ant - Fatal编程技术网

Android 如何使用Ant从中读取project.properties和库项目的所有路径?

Android 如何使用Ant从中读取project.properties和库项目的所有路径?,android,ant,Android,Ant,我试图阅读包含以下内容的project.properties。我使用了带有前缀的属性,但无法达到我的目的 target=android-17 android.library.reference.1=submodules/Switchbar android.library.reference.2=submodules/Volley android.library.reference.3=libs/ActionBar/library 我只想获取字符串或列表[submodules/Switchba

我试图阅读包含以下内容的project.properties。我使用了带有前缀的属性,但无法达到我的目的

target=android-17
android.library.reference.1=submodules/Switchbar
android.library.reference.2=submodules/Volley
android.library.reference.3=libs/ActionBar/library 
我只想获取字符串或列表[submodules/Switchbar,submodules/Switchbar,libs/ActionBar/library],并尝试将它们用于其他需求


谢谢。

您可以编写一个sinle属性,如

android.library.reference=submodules/Switchbar,submodules/Volley,libs/ActionBar/library
并在build.xml中使用它

例如,您可以使用
迭代列表并对每个项目执行代码。您可以在某些任务中直接使用它,因为它们本机支持此类“逗号分隔列表”(例如
包含
排除

如果希望保持当前方式(使用相同前缀编写多个属性),可以使用
在ant构建文件中编写脚本来处理属性。您可以使用ruby、python、Beanshell(Java)、groovy等等。您还可以使用这种方式处理单个属性


所以,你最好在你的问题上多发一些帖子:你的“其他要求”是什么?如何使用属性或“列表”?

Android的ant构建文件有一个预定义的任务:

<getlibpath projectPath="${any.path.to.android.project}" libraryFolderPathOut="full.project.library.path.list" />

它返回特定构建中涉及的所有库项目(包括lib项目的lib项目)

可于

<import file="${sdk.dir}/tools/ant/build.xml"/>

它会自动包含在初始构建脚本中(在运行
android更新项目-p
之后)

更准确地说,“${sdk.dir}/tools/ant/build.xml”的下一部分发挥了神奇的作用(我将getlibpath直接包含在我的构建脚本中)


    <!-- jar file from where the tasks are loaded -->
    <path id="android.antlibs">
        <pathelement path="${sdk.dir}/tools/lib/ant-tasks.jar" />
    </path>

    <!-- Custom tasks -->
    <taskdef resource="anttasks.properties" classpathref="android.antlibs" />