包括Google AdMob SDK与Ant一起使用



我使用的是(new?)AdMob SDK使用说明在这个谷歌网站上。我们应该将GoogleAdMobAdsSdk-4.0.4.jar文件集成到我们的项目中。问题是:我们如何使用Ant做到这一点?它在Eclipse中工作得很好(它自动进入.classpath文件),但在Ant中,它在ant release时抛出许多"无法找到"问题。

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

我将源文件夹复制到其他地方,这样它就不会与我的eclipse项目文件夹混淆。

//编辑:

让我更具体一点:如果我只是把jar放入libs文件夹,它会自动工作,但我想知道如果jar位于其他地方,我是否可以使用jar。不管怎样,我的问题解决了…我可以把它编译到lib 中。我就当这是一个好奇的问题吧。不着急。

下面是.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-windowstoolsantmain_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:UsersDavidDocumentsprogrameclipseMyApp9-branchaaabinclasses
    [javac] C:UsersDavidDocumentsprogrameclipseMyApp9-branchv9srcnetmyappuiMainActivity.java:116: package com.google.ads does not exist
    [javac] import com.google.ads.*;
    [javac] ^
    [javac] C:UsersDavidDocumentsprogrameclipseMyApp9-branchv9srcnetmyappuiMainActivity.java:143: cannot find symbol
    [javac] symbol  : class AdView
    [javac] location: class net.myapp.ui.MainActivity
    [javac]     AdView adView;
    [javac]     ^

我试过查看main_rules,我可以看到它在哪里声明libs文件夹作为jar的地方,但是,我想知道是否有一种简单的方法,每个项目的代码行来定制这个。

谢谢。

不幸的是,由于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有一个嵌入的版本号,我建议你坚持在project libs目录中保留一个副本。

如果你使用SVN,你可以使用外部定义将jar文件拉到子目录中,并在-pre-compile下使用复制任务将最新的jar文件移动到lib中;这完全取决于您与多少人(或机器)共享代码

我想不出一种比复制jar更少维护的优雅方式。

相关内容

  • 没有找到相关文章

最新更新