使用Ant构建Android应用程序时遇到错误

时间:2013-12-04 21:20:44

标签: java android ant

我有一个Android项目,我使用android更新项目-p。 --target 12生成build.xml脚本。完成后,我使用ant来构建项目。但是,我遇到了这个错误日志:

BUILD FAILED
/Users/sean/Downloads/GameSample/build.xml:90: The following error occurred while executing this line:
/Users/sean/local/adt/sdk/tools/ant/build.xml:111: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(Z)V
    at com.google.common.collect.Maps.capacity(Maps.java:105)
    at com.google.common.collect.Sets.newHashSetWithExpectedSize(Sets.java:181)
    at com.android.ant.RenderScriptTask.<clinit>(RenderScriptTask.java:59)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at org.apache.tools.ant.taskdefs.Definer.addDefinition(Definer.java:579)
    at org.apache.tools.ant.taskdefs.Definer.loadProperties(Definer.java:408)
    at org.apache.tools.ant.taskdefs.Definer.execute(Definer.java:264)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:435)
    at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:168)
    at org.apache.tools.ant.taskdefs.ImportTask.importResource(ImportTask.java:230)
    at org.apache.tools.ant.taskdefs.ImportTask.execute(ImportTask.java:162)

我在google和stackoverflow中进行了一些搜索但是我找不到任何相关信息。我想知道我的环境是否有问题。

第111行的build.xml片段是

<path id="android.antlibs">
    <pathelement path="${sdk.dir}/tools/lib/guava-13.0.1.jar" />
    <pathelement path="${sdk.dir}/tools/lib/ant-tasks.jar" />
</path>

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

2 个答案:

答案 0 :(得分:1)

首先,检查你的guava-xxx.jar(例如${sdk.dir}/tools/lib/guava-13.0.1.jar),确保它void checkArgument(boolean)

下有方法com.google.common.base.Preconditions

其次,检查您的CLASSPATH环境,确保CLASSPATH中没有其他jar文件包含课程com.google.common.base.Preconditions

答案 1 :(得分:0)

您的异常,但不是堆栈跟踪,与此问题中的相同 - CompilerOptions: NoSuchMethodError: com.google.common.base.Preconditions.checkArgument。也许你也错过了一个类路径条目?