2017-04-08 14 views
-1

私はAndroid用のアプリケーションを作成しており、libGdxを使用しています.Admobを追加する方法については100万回のチュートリアルを確認しました。すべてのチュートリアルでbuild.gradleファイルそれは彼らのものと同じではありません、彼らはそこに依存関係と異なるものを持っています、どのように私のbuild.gradleにadmobを追加する考えですか?java-libgdx build.gradleはAdMobと同じではありません

アンドロイドbuild.gradle:

android { 
    buildToolsVersion "25.0.2" 
    compileSdkVersion 25 
    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.badlogic.drop" 
     minSdkVersion 8 
     targetSdkVersion 25 
    } 
} 


// 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.badlogic.drop/com.badlogic.drop.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") 
         } 
        } 
       } 
      } 
     } 
    } 
} 

とコアbuild.gradle:

apply plugin: "java" 

sourceCompatibility = 1.6 
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8' 

sourceSets.main.java.srcDirs = [ "src/" ] 


eclipse.project { 
    name = appName + "-core" 
} 

、最終的にはデスクトップのbuild.gradle:

apply plugin: "java" 

sourceCompatibility = 1.6 
sourceSets.main.java.srcDirs = [ "src/" ] 

project.ext.mainClassName = "com.badlogic.drop.desktop.DesktopLauncher" 
project.ext.assetsDir = new File("../android/assets"); 

task run(dependsOn: classes, type: JavaExec) { 
    main = project.mainClassName 
    classpath = sourceSets.main.runtimeClasspath 
    standardInput = System.in 
    workingDir = project.assetsDir 
    ignoreExitValue = true 
} 

task dist(type: Jar) { 
    from files(sourceSets.main.output.classesDir) 
    from files(sourceSets.main.output.resourcesDir) 
    from {configurations.compile.collect {zipTree(it)}} 
    from files(project.assetsDir); 

    manifest { 
     attributes 'Main-Class': project.mainClassName 
    } 
} 

dist.dependsOn classes 

eclipse { 
    project { 
     name = appName + "-desktop" 
     linkedResource name: 'assets', type: '2', location: 'PARENT-1-PROJECT_LOC/android/assets' 
    } 
} 

task afterEclipseImport(description: "Post processing after project generation", group: "IDE") { 
    doLast { 
    def classpath = new XmlParser().parse(file(".classpath")) 
    new Node(classpath, "classpathentry", [ kind: 'src', path: 'assets' ]); 
    def writer = new FileWriter(file(".classpath")) 
    def printer = new XmlNodePrinter(new PrintWriter(writer)) 
    printer.setPreserveWhitespace(true) 
    printer.print(classpath) 
    } 
} 

答えて

0

build.gradleを忘れデスクトップおよびコアモジュールの

あなたは従来のAdMob統合の代わりにFirebase Admob統合を使用していますので、まずFirebaseとAdmob Adを統合してください。

このパートをandroid moduleのbuild.gradleに追加してください。ルートプロジェクトのごbuild.gradleファイル

dependencies { 

    compile 'com.google.firebase:firebase-core:10.2.1' 
    compile 'com.google.firebase:firebase-ads:10.2.1' 
    compile 'com.android.support:support-annotations:25.3.1' 
} 

apply plugin: 'com.google.gms.google-services' 

はfirebase統合のためのbuildscriptで依存関係として追加します。 AndroidManifest.xmlを

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<meta-data android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 

<activity android:name="com.google.android.gms.ads.AdActivity" 
      android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" 
      android:theme="@android:style/Theme.Translucent" /> 

スタートで

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

変更がMobileAds初期化後のビューを作成し、一部をコーディング。

MobileAds.initialize(activity.getApplicationContext(), APP_ID); 
initView(); 

protected void initView(){ 

     // Create and setup the AdMobHelper view 
     topView = new AdView(activity); 
     topView.setAdSize(AdSize.BANNER); 
     topView.setAdUnitId(TopAdUnitId); 

     bottomView = new AdView(activity); 
     bottomView.setAdSize(AdSize.BANNER); 
     bottomView.setAdUnitId(BottomAdUnitId); 

     AdRequest.Builder adRequestBuilder = new AdRequest.Builder(); 
     //adRequestBuilder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR); 
     topView.loadAd(adRequestBuilder.build()); 

     AdRequest.Builder adRequestBuilder1 = new AdRequest.Builder(); 
     adRequestBuilder1.addTestDevice(AdRequest.DEVICE_ID_EMULATOR); 
     bottomView.loadAd(adRequestBuilder1.build()); 

     crateInterestial(); 

     // Do the stuff that initialize() would do for you 
     callForInitializeForView(); 

    } 

あなたは広告(Firebase、RevMob、Chartboost、startappの...付き/なしのAdMob)LibGDXとの統合のために、このprojectを確認することができます。

+0

ありがとうございました。私は2つの質問があります。最初に "classpath 'com.google.gms:google-services:3.0.0'"という行を追加しますか? と2番目にコーディング部分を追加する場所は?あなたの答えの最後の部分はどこに書きますか? – aysam

+0

ルートbuild.gradleファイルのリンクがあり、そこに書き込む必要があるかどうかを確認するリンクがあります。 – Aryan

+0

はい、今それをチェックしています、ありがとう! – aysam

関連する問題