2017-08-29 66 views
0

我將項目與Firebase廣告相關聯,但無法使用AdView,MobileAds等類。它顯示無法解析符號(建議:將庫'play-services-ads-lite:11.2.0'添加到classpath中)。我從android studio直接連接了firebase。 這是我的兩個階梯。Admob未在LIBGDX項目中工作

的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' 

回答

0

像你的問題說,這種添加到您的build.gradle(APP)

implementation 'play-services-ads-lite:11.2.0' 

何這有助於!

+0

不!它沒有工作 – aman

+0

嘗試使用編譯爲您的依賴關係,而不是執行 – MrAppMachine

0

加入谷歌的Maven倉庫根build.gradle文件,這對所有模塊

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模塊

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

刷新您的工程方案。

+0

我已經添加它們 – aman

+0

Android SDK SDK Tools面板中的Google Repository版本是什麼? – Aryan

+0

谷歌存儲庫版本是57 – aman