2

我在使用库项目的 project.properties 文件中链接了一个库项目

android.library.reference.1=~/Documents/Workspace/LibraryProject/

图书馆项目的 project.properties 说:

android.library=true

我在这里读到我必须使用相对路径。所以我使用前面带有波浪号的路径,因为我读到这被认为是我使用的基于 Unix 的操作系统(Mac OS)上的相对路径。

但是,当我使用 Ant 脚本构建我的项目时(我没有在此处发布它,因为它可以在没有上面那一行的情况下工作,所以我认为这不是问题),我收到以下错误:

/Users/home/Documents/android-sdk-macosx/tools/ant/build.xml:545: ~/Documents/Workspace/LibraryProject/ resolve to a path with no project.properties file for project /Users/home/ApplicationAndroidBuilt

编辑

在我将代码更新为 Boris Answer 后,我得到另一个错误,但我认为我走对了

这是我现在在 ant 脚本中所做的

<target name="updateProject">

    <echo>updating Project...</echo>
    <!-- The Library -->
    <exec dir="${android_home}/tools" executable="./android">
        <arg line="update"/>
        <arg line="project"/>
        <arg line="--target"/>
        <arg line="4"/>
        <arg line="-p"/>
        <arg line="${scannerLibrary_home}"/>
    </exec>
   <!-- The consuming Project -->
    <exec dir="${android_home}/tools"  executable="./android"> 
        <arg line="update"/>
        <arg line="project"/>
        <arg line="--target"/>
        <arg line="4"/>
        <arg line="-p"/>
        <arg line="${targetdir}"/>
    </exec>

    <antcall target="buildScanner"/>
</target>

<target name="buildScanner">
    <exec dir="${scannerLibrary_home}"  executable="ant"> 
        <arg line="clean"/>
        <arg line="release"/>
    </exec>
    <antcall target="buildProject"/>
</target>

<target name="buildProject">
    <exec dir="${targetdir}"  executable="ant"> 
        <arg line="debug"/>
    </exec>
    <antcall target="install"/>
</target>

我现在收到此错误:

taskdef class com.android.ant.SetupTask cannot be found

谷歌搜索了一下,它说我必须在库项目的 local.properties 文件中提供我的 android_home 的路径,我这样做:

sdk.dir=/Users/home/Documents/android-sdk-macosx

遗憾的是还没有运气,有人知道这里有什么问题吗?

编辑2:

删除使用库项目的 build.xml 文件后,找不到 SetupTask 的错误消失了,但我原来的帖子中的“解析到没有 project.properties 的路径”再次出现。即使路径是正确的,并且指向带有 project.property 文件的目录。

4

2 回答 2

0

关于“解析到没有 project.properties 的路径”——以防万一其他人点击它:我的“android.library.reference.1=abc”行末尾有一个额外的空间,这导致了我的头痛。一旦我删除了额外的空间,一切正常。

于 2014-03-07T13:36:13.683 回答
0

您需要ant project update --path .先在库的文件夹中运行,然后在项目的文件夹中运行。

就在那时,您已准备好进行编译。您需要首先使用该库单独构建该库,ant clean release然后ant clean release在使用该库的项目中进行构建。

于 2012-08-22T14:28:05.970 回答