开发者

Android AdMob and Maven

I have an Android Project where I need to build multiple versions of the same application from the same sources.

To do this, I use the android plugin for Maven

Each version must be able to include ads from admob. So in my POM I added this dependancy

<dependency>
   <groupId>com.admob.android</groupId>
   <artifactId>ads</artifactId>
   <vers开发者_如何学Cion>20101109-ANDROID-3312276cc1406347</version>
   <scope>system</scope>
   <systemPath>THE_PATH\libs\admob-sdk-android.jar</systemPath>
 </dependency>

I don't get any errors at build time but, when I execute the application I get this exception

java.lang.ClassNotFoundException: com.admob.android.ads.AdView

So apparently the package is not properly included ?


You can NOT use system scope for runtime required libraries. Deploy the jar into your local repository or your repository server (using e.g. mvn install:installFile ..) and remove scope and systemPath from the dependency declaration.

Update: As of the latest releases my Maven Android SDK Deployer can do the install of the AdMob jar from the SDK into your local Maven repository or repository server for you.


To use the Maven Android SDK Deployer, do the following:

  • Clone the repo:

    git clone https://github.com/mosabua/maven-android-sdk-deployer.git

  • Go to your SDK Manager and install all APIs (this may take a while if you haven't done it yet)

  • Make sure you have the correct environment variable set for ANDROID_HOME. For Windows this might be:

    set ANDROID_HOME=c:/android-sdk-windows

  • Run the installer:

    c:\Tools\maven-android-sdk-deployer>mvn install

After you have done this you can just use all the android dependencies from your pom.xml, e.g.

    <dependency>
        <groupId>com.google.android.admob</groupId>
        <artifactId>admob</artifactId>
        <version>6.4.1-r11</version>
    </dependency>

(There's a whole list on the github page)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜