6

我需要在 Android 构建过程中使用 ANT,因为最后我需要创建两个版本的应用程序(FULL 和 LITE)。当我使用命令行工具创建新项目时,它会为我生成所有必要的构建文件(build.xml、local.properties、build.properties 和 default.properties,哦,还有 proguard.cfg)。我的完整版应用程序需要一个市场许可库(位于我的 ${sdk.dir}/extras/google/market_licensing/library。所以在 Eclipse 中,我定义了这个库的位置,如果我从 Eclipse 运行我的应用程序,它就可以工作. 现在如果我在我的应用程序上运行 ant 脚本

${my.project-home}$ ant
Buildfile: ${my.project-home}/build.xml
    [setup] Android SDK Tools Revision 10
    [setup] Project Target: Android 2.1-update1
    [setup] API level: 7
    [setup] 
    [setup] ------------------
    [setup] Resolving library dependencies:

BUILD FAILED
${my.project-home}/build.xml:77: ../../../android-sdk-mac_86/extras/google/market_licensing/library resolve to a path with no default.properties file for project ${my.project-home}

我的 default.properties 看起来像

target=android-7
android.library=false
android.library.reference.1=../../../android-sdk-mac_86/extras/google/market_licensing/library

还有我的 build.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project name="MyMeasures">

<!-- The local.properties file is created and updated by the 'android'
     tool.
     It contains the path to the SDK. It should *NOT* be checked into
     Version Control Systems. -->
    <property file="local.properties" />

    <!-- The build.properties file can be created by you and is never touched
         by the 'android' tool. This is the place to change some of the
         default property values used by the Ant rules.
         Here are some properties you may want to change/update:

         source.dir
             The name of the source directory. Default is 'src'.
         out.dir
             The name of the output directory. Default is 'bin'.

         Properties related to the SDK location or the project target should
         be updated using the 'android' tool with the 'update' action.

         This file is an integral part of the build system for your
         application and should be checked into Version Control Systems.

         -->
    <property file="build.properties" />

    <!-- The default.properties file is created and updated by the 'android'
         tool, as well as ADT.
         This file is an integral part of the build system for your
         application and should be checked into Version Control Systems. -->
    <property file="default.properties" />


    <!-- Required pre-setup import -->
    <import file="${sdk.dir}/tools/ant/pre_setup.xml" />


<!-- extension targets. Uncomment the ones where you want to do custom work
     in between standard targets -->

    <target name="-pre-build">
    </target>
    <target name="-pre-compile">
    </target>

<!--    [This is typically used for code obfuscation.
     Compiled code location: ${out.classes.absolute.dir}
     If this is not done in place, override ${out.dex.input.absolute.dir}]
    <target name="-post-compile">
    </target>
-->

    <!-- Execute the Android Setup task that will setup some properties
         specific to the target, and import the build rules files.

         The rules file is imported from
            <SDK>/tools/ant/
         Depending on the project type it can be either:
         - main_rules.xml
         - lib_rules.xml
         - test_rules.xml

         To customize existing targets, there are two options:
         - Customize only one target:
             - copy/paste the target into this file, *before* the
               <setup> task.
             - customize it to your needs.
         - Customize the whole script.
             - copy/paste the content of the rules files (minus the top node)
               into this file, *after* the <setup> task
             - disable the import of the rules by changing the setup task
               below to <setup import="false" />.
             - customize to your needs.
    -->
    <setup />

</project>

我现在在 build.xml 中做的唯一一件事是我取消了注释-pre-build-pre-compile但他们什么都不做......我也尝试将它们评论回来,结果是一样的。

有人用过蚂蚁的市场许可库吗?

4

4 回答 4

2

有点老的话题,但也许对某人有帮助。我有同样的问题,终于发现了问题的根源

系统: win7,最后一个Eclipse和旧的android工具

创建 build.xml

android update project --path .

将库添加到 default.properties,例如

android.library.reference.1=..\dir\MyLibrary

但这不起作用......最后我找到了解决方案。这行得通

android.library.reference.1=..\\dir\\MyLibrary

希望这可以帮助某人...

于 2011-09-16T07:53:15.873 回答
0

Hi you need to put a reference to the library project in the build.properties file of your main application. It should look like:

android.library.reference.1=../path-to/library-project

Then as long as that project also has a working ant build.xml it will build and be included in your app.

More details here

于 2011-09-09T09:59:59.263 回答
0

zmeda 检查 extras LVM 文件夹我认为它缺少 default.properties 文件..至少这是你的错误消息告诉你的..

于 2011-05-29T15:07:54.560 回答
0

我没有使用过这个库,但是我发现对于需要第三方 jar 的 Ant 构建,有必要在“my_project_home”下创建一个目录“libs”(即与“src”处于同一级别)。把罐子丢进去。然后 main_rules.xml 中的目标应该能够找到它。

于 2011-04-19T14:42:51.773 回答