我使用的是(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更少维护的优雅方式。