包括用于Ant的Google AdMob SDK

时间:2011-04-28 01:14:05

标签: android ant jar admob

我正在使用(新的?)AdMob SDK,使用this Google site上的说明。我们应该将GoogleAdMobAdsSdk-4.0.4.jar文件集成到我们的项目中。问题是:我们如何使用Ant做到这一点?我在Eclipse中运行良好(它自动进入.classpath文件),但是在ant release时,它会抛出很多“无法找到”的问题。

我在哪里以及如何包含对该jar的引用?我怀疑我应该在build.xml中这样做,但我不确定如何。

我将源文件夹复制到别处,这样就不会弄乱我的eclipse项目文件夹。

//编辑:

让我更具体一点:如果我将jar放入libs文件夹,它会自动运行,但我想知道如果jar位于其他地方,我是否可以使用jar。 无论如何,我的问题已经解决了......我可以将其编译成libs 。我将此视为好奇心问题。不急。

这是.classpath文件,如下所示。让我说它只会在Eclipse中产生影响,但Ant似乎并没有使用它:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry kind="src" path="/android_licensing"/>
    <classpathentry kind="lib" path="C:/Users/David/Documents/program/eclipse/GoogleAdMobAdsSdk-4.0.4.jar"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

Ant错误:

compile:
    [javac] C:\android-sdk-windows\tools\ant\main_rules.xml:384: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 35 source files to C:\Users\David\Documents\program\eclipse\MyApp\9-branch\aaa\bin\classes
    [javac] C:\Users\David\Documents\program\eclipse\MyApp\9-branch\v9\src\net\myapp\ui\MainActivity.java:116: package com.google.ads does not exist
    [javac] import com.google.ads.*;
    [javac] ^
    [javac] C:\Users\David\Documents\program\eclipse\MyApp\9-branch\v9\src\net\myapp\ui\MainActivity.java:143: cannot find symbol
    [javac] symbol  : class AdView
    [javac] location: class net.myapp.ui.MainActivity
    [javac]     AdView adView;
    [javac]     ^

我已经尝试过查看main_rules,我可以看到它将libs文件夹声明为jar的位置,但是,我仍然想知道是否有一种简单的方法,每个项目的代码行来自定义它。< / p>

感谢。

1 个答案:

答案 0 :(得分:2)

不幸的是,由于在main_rules.xml中处理jar的方式,这不容易做到:

<!-- Directory for the third party java libraries -->
<property name="jar.libs.dir" value="libs" />
<property name="jar.libs.absolute.dir" location="${jar.libs.dir}" />
<!-- create a path with all the jar files, from the main project and the
     libraries -->
<path id="jar.libs.ref">
    <fileset dir="${jar.libs.absolute.dir}" includes="*.jar" />
    <path refid="project.libraries.jars" />
</path>

它在一个目录中查找,并从那里的所有文件构建路径。鉴于admob jar有一个嵌入的版本号,我建议你坚持在项目libs目录中保留一份副本。

如果使用SVN,可以使用外部定义将jar拉入子目录,并在-pre-compile中使用复制任务将最新的一个移动到libs中;这一切都取决于你与

共享代码的人数(或机器数)

我无法想到一种优雅的方式,只需复制jar就可以减少维护工作量。