Admob无法在LIBGDX项目中使用

时间:2017-08-29 15:57:18

标签: java android firebase libgdx admob

我将我的项目与firebase广告相关联,而且我无法使用AdView,MobileAds等课程。它显示无法解析符号(建议:添加库' play-services-ads-lite:11.2.0'到classpath)。我从android studio直接连接了firebase。 这是我的两个渐变。

build.gradle(项目)

 buildscript {


repositories {
    mavenLocal()
    mavenCentral()
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0-alpha4'


    classpath 'com.google.gms:google-services:3.1.0'

  }
}

allprojects {
apply plugin: "eclipse"
apply plugin: "idea"

version = '1.0'
ext {
    appName = "Drunken Bird"
    gdxVersion = '1.9.6'
    roboVMVersion = '2.3.1'
    box2DLightsVersion = '1.4'
    ashleyVersion = '1.7.0'
    aiVersion = '1.8.0'
    admobVersion='8.3.0'
}

repositories {
    mavenLocal()
    mavenCentral()
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    maven { url "https://oss.sonatype.org/content/repositories/releases/"          }
   }
  }

  project(":android") {
apply plugin: "android"

configurations { natives }

dependencies {
    compile project(":core")
    compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
    compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi"
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a"
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-arm64-v8a"
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86"
    natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86_64"


}
 }

   project(":core") {
apply plugin: "java"


dependencies {
    compile "com.badlogicgames.gdx:gdx:$gdxVersion"
    compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"

}
}

 tasks.eclipse.doLast {
delete ".project"
   }

build.gradle(app)

     android {
            buildToolsVersion '26.0.1'
            compileSdkVersion 26
            sourceSets {
                main {
                    manifest.srcFile 'AndroidManifest.xml'
                    java.srcDirs = ['src']
                    aidl.srcDirs = ['src']
                    renderscript.srcDirs = ['src']
                    res.srcDirs = ['res']
                    assets.srcDirs = ['assets']
                    jniLibs.srcDirs = ['libs']
                }

                instrumentTest.setRoot('tests')
            }
            packagingOptions {
                exclude 'META-INF/robovm/ios/robovm.xml'
            }
            defaultConfig {
                applicationId "com.aman.drunkenbird"
                minSdkVersion 14
                targetSdkVersion 26
                versionCode 1
                versionName "1.0"
            }
            buildTypes {
                release {
                    minifyEnabled false
                    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                }
            }
            productFlavors {
            }
        }
        // called every time gradle gets executed, takes the native dependencies of
        // the natives configuration, and extracts them to the proper libs/ folders
        // so they get packed with the APK.
        task copyAndroidNatives() {
            file("libs/armeabi/").mkdirs();
            file("libs/armeabi-v7a/").mkdirs();
            file("libs/arm64-v8a/").mkdirs();
            file("libs/x86_64/").mkdirs();
            file("libs/x86/").mkdirs();

            configurations.natives.files.each { jar ->
                def outputDir = null
                if (jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
                if (jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
                if (jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
                if (jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
                if (jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
                if (outputDir != null) {
                    copy {
                        from zipTree(jar)
                        into outputDir
                        include "*.so"
                    }
                }
            }
        }
        task run(type: Exec) {
            def path
            def localProperties = project.file("../local.properties")
            if (localProperties.exists()) {
                Properties properties = new Properties()
                localProperties.withInputStream { instr ->
                    properties.load(instr)
                }
                def sdkDir = properties.getProperty('sdk.dir')
                if (sdkDir) {
                    path = sdkDir
                } else {
                    path = "$System.env.ANDROID_HOME"
                }
            } else {
                path = "$System.env.ANDROID_HOME"
            }

            def adb = path + "/platform-tools/adb"
            commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.aman.drunkenbird/com.aman.drunkenbird.AndroidLauncher'
        }
        // sets up the Android Eclipse project, using the old Ant based build.
        eclipse {
            // need to specify Java source sets explicitly, SpringSource Gradle Eclipse plugin
            // ignores any nodes added in classpath.file.withXml
            sourceSets {
                main {
                    java.srcDirs "src", 'gen'
                }
            }

            jdt {
                sourceCompatibility = 1.6
                targetCompatibility = 1.6
            }

            classpath {
                plusConfigurations += [project.configurations.compile]
                containers 'com.android.ide.eclipse.adt.ANDROID_FRAMEWORK', 'com.android.ide.eclipse.adt.LIBRARIES'
            }

            project {
                name = appName + "-android"
                natures 'com.android.ide.eclipse.adt.AndroidNature'
                buildCommands.clear();
                buildCommand "com.android.ide.eclipse.adt.ResourceManagerBuilder"
                buildCommand "com.android.ide.eclipse.adt.PreCompilerBuilder"
                buildCommand "org.eclipse.jdt.core.javabuilder"
                buildCommand "com.android.ide.eclipse.adt.ApkBuilder"
            }
        }
        // sets up the Android Idea project, using the old Ant based build.
        idea {
            module {
                sourceDirs += file("src");
                scopes = [COMPILE: [plus: [project.configurations.compile]]]

                iml {
                    withXml {
                        def node = it.asNode()
                        def builder = NodeBuilder.newInstance();
                        builder.current = node;
                        builder.component(name: "FacetManager") {
                            facet(type: "android", name: "Android") {
                                configuration {
                                    option(name: "UPDATE_PROPERTY_FILES", value: "true")
                                }
                            }
                        }
                    }
                }
            }
        }
        dependencies {

            implementation 'com.google.firebase:firebase-core:11.2.0'
            implementation 'com.google.firebase:firebase-ads:11.2.0'

            implementation 'com.google.android.gms:play-services-ads:11.2.0'

        }
        repositories {
            maven {
                url "https://maven.google.com"
            }
        }
        apply plugin: 'com.google.gms.google-services'

2 个答案:

答案 0 :(得分:0)

就像您的问题所说,将此添加到build.gradle(app)

boost::optional<const char *> foo () {
   char ar[100] = {};
   return boost::make_optional(true, ar);
}

希望这有帮助!

答案 1 :(得分:0)

在根build.gradle文件中添加Google的Maven存储库,这是所有模块的

repositories {

     mavenLocal()
     mavenCentral()
     maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
     maven { url "https://oss.sonatype.org/content/repositories/releases/" }
     maven {  url "https://maven.google.com" }   //<-- Google's Maven repository
}

之后在Android模块中注入Ads依赖

dependencies {
    compile 'com.google.firebase:firebase-ads:11.2.0'
}

刷新您的项目。