首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译中出现Admob错误:多个库的包名为'com.google.android.gms‘

编译中出现Admob错误:多个库的包名为'com.google.android.gms‘
EN

Stack Overflow用户
提问于 2015-10-02 17:16:12
回答 2查看 183关注 0票数 1

我是一名web开发人员,刚刚开始使用jquery mobile进行移动应用程序开发。我已经在我的应用程序中包含了admob插件,以便在上面运行广告。但是我收到一个错误,我不知道,我搜索网络,我被告知它与我的build.gradle文件有关,我希望有人能帮我解决它。这就是错误

代码语言:javascript
复制
Error:Execution failed for task ':processDebugResources'.
> Error: more than one library with package name 'com.google.android.gms'
You can temporarily disable this error with android.enforceUniquePackageName=false
However, this is temporary and will be enforced in 1.0

Gradle构建脚本

代码语言:javascript
复制
/* Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
*/



buildscript {
    repositories {
        mavenCentral()
    }

    // Switch the Android Gradle plugin version requirement depending on the
    // installed version of Gradle. This dependency is documented at
    // http://tools.android.com/tech-docs/new-build-system/version-compatibility
    // and https://issues.apache.org/jira/browse/CB-8143
    if (gradle.gradleVersion >= "2.2") {
        dependencies {
            classpath 'com.android.tools.build:gradle:1.2.3'
        }
    } else if (gradle.gradleVersion >= "2.1") {
        dependencies {
            classpath 'com.android.tools.build:gradle:0.14.0+'
        }
    } else {
        dependencies {
            classpath 'com.android.tools.build:gradle:0.12.0+'
        }
    }
}

apply plugin: 'android-library'

android {
    compileSdkVersion cdvCompileSdkVersion
    buildToolsVersion cdvBuildToolsVersion
    publishNonDefault true

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
}

我已经在Android Studio中更新了所有sdks和插件

EN

回答 2

Stack Overflow用户

发布于 2015-10-02 17:58:59

我从下面的问题中抄袭我的答案:

More than one library with package name 'com.google.android.gms' (only 8.1) and Cordova

我已经用钩子解决了这个问题。它不是完美的,但很有效。

在after_platform_add中添加以下脚本

代码语言:javascript
复制
#!/usr/bin/env node


var fs = require('fs');
var path = require('path');
var fork = require('child_process').fork,
    shell = require("shelljs");

var dir = './platforms/android/';

fs.writeFileSync(dir + 'build-extras.gradle', 'configurations { all*.exclude group: \'com.android.support\', module: \'support-v4\'}', 'utf8');
票数 1
EN

Stack Overflow用户

发布于 2015-10-03 06:37:00

我不太习惯jquery,因为你说你用的是cordova,你试过这个插件吗?https://github.com/appfeel/admob-google-cordova。要将其添加到项目中,请执行以下操作:cordova plugin add cordova-admob

要使用它:

代码语言:javascript
复制
function onDeviceReady() {
  document.removeEventListener('deviceready', onDeviceReady, false);

  // Set AdMobAds options:
  admob.setOptions({
    publisherId:          "ca-app-pub-XXXXXXXXXXXXXXXX/BBBBBBBBBB",  // Required
    interstitialAdId:     "ca-app-pub-XXXXXXXXXXXXXXXX/IIIIIIIIII",  // Optional
    autoShowInterstitial: true                                       // Optional
  });

  // Start showing banners (atomatic when autoShowBanner is set to true)
  admob.createBannerView();

  // Request interstitial (will present automatically when autoShowInterstitial is set to true)
  admob.requestInterstitialAd();
}

document.addEventListener("deviceready", onDeviceReady, false);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32904070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档