我需要在Android构建过程中使用ANT,因为最后我需要创建两个版本的应用程序(FULL& LITE)。 当我使用命令行工具创建新项目时,它会为我生成所有必需的构建文件(build.xml,local.properties,build.properties和default.properties,以及proguard.cfg)。我的完整版应用程序需要一个市场许可库(位于我的$ {sdk.dir} / extras / google / market_licensing /库。所以在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
,但它们什么也没做......我也试着回复它们,结果也是一样的。
有没有人使用过ant的市场许可库?
答案 0 :(得分:2)
有点老话题,但也许对某人有帮助。我有同样的问题,最后发现了麻烦的来源
系统: win7,最后一个Eclipse和旧的android工具
使用
创建build.xmlandroid update project --path .
将库(ies)添加到default.properties,如
android.library.reference.1=..\dir\MyLibrary
但这不起作用......最后我找到了解决方案。 此作品!
android.library.reference.1=..\\dir\\MyLibrary
希望这有助于某人...
答案 1 :(得分:0)
我没有使用过这个库,但我发现对于需要第三方jar的Ant构建,需要在'my_project_home'下创建一个目录'libs'(即与'src'处于同一级别)。把罐子放在那里。然后main_rules.xml中的目标应该能够找到它。
答案 2 :(得分:0)
zmeda检查额外的LVM文件夹我认为它缺少default.properties文件..至少这是你的错误信息告诉你的..
答案 3 :(得分:0)
您好需要在主应用程序的build.properties文件中引用库项目。它应该看起来像:
android.library.reference.1=../path-to/library-project
然后只要该项目还有一个有效的ant build.xml,它就会构建并包含在你的应用中。
更多详情here