ионное приложение и показать выпуск баннера Admob - PullRequest
1 голос
/ 26 марта 2019

я пытаюсь добавить плагин Admob в мое приложение ionic, и после этого я сталкиваюсь с проблемой, которая была в сбое сборки, потому что зависимости совместимы с этими зависимостями:

 compile "com.google.android.gms:play-services-base:11.0.4"
 compile "com.google.android.gms:play-services-ads:11.0.4"
 compile "com.google.android.gms:play-services-tagmanager:+"

я пытаюсь выровнять версию вручнуюи с cordova-play-services-version-adapter, но каждый раз, когда он возвращается к 11.0.4, тогда я использую cordova-admob, и он добавляет новую компиляцию, которая

    compile "com.google.android.gms:play-services-ads:15.0.0"

, она работает хорошо и создает мой apkно терминал говорит мне, что есть проблема

'Адаптер версии Cordova Play Services' обнаружил ошибку.Следующие
зависимости «Сервисов Google Play» несовместимы: у вас есть несовместимость версий со следующими зависимостями «Сервисов Google Play»:

  • 'com.google.android.gms: база play-services: 11.0.4 '
  • ' com.google.android.gms: реклама play-services: 11.0.4 '
  • ' com.google.android.gms: play-services-tagmanager: + '
  • ' com.google.firebase: firebase-core: + '
  • ' com.google.firebase: firebase-message: + '
  • 'com.google.firebase: firebase-config: +'
  • 'com.google.firebase: firebase-perf: +'
  • 'com.google.firebase: firebase-сообщения: 11.6.2 '
  • ' com.google.android.gms: play-services-ads: 15.0.0 '

Несуществует версия «Сервисов Google Play», которая включает в себя все эти зависимости.Все зависимости «Сервисов Google Play» должны иметь одинаковую версию.Приложение может не скомпилироваться.

, и в моем приложении нет баннеров или рекламы

мой файл build.gradle


*
*
*
*
*
*
*
        }
        addSigningProps(cdvReleaseSigningPropertiesFile, signingConfigs.release)
    }
    if (cdvDebugSigningPropertiesFile) {
        addSigningProps(cdvDebugSigningPropertiesFile, signingConfigs.debug)
    }
}

/*
 * WARNING: Cordova Lib and platform scripts do management inside of this code here,
 * if you are adding the dependencies manually, do so outside the comments, otherwise
 * the Cordova tools will overwrite them
 */


dependencies {
    implementation fileTree(dir: 'libs', include: '*.jar')
    // SUB-PROJECT DEPENDENCIES START
    implementation(project(path: ":CordovaLib"))
    compile "com.google.android.gms:play-services-base:11.0.4"
    compile "com.google.android.gms:play-services-ads:11.0.4"
    compile "com.google.android.gms:play-services-tagmanager:+"
    compile "com.google.firebase:firebase-core:+"
    compile "com.google.firebase:firebase-messaging:+"
    compile "com.google.firebase:firebase-config:+"
    compile "com.google.firebase:firebase-perf:+"
    compile "com.android.support:support-annotations:27.+"
    compile "com.android.support:support-v13:27.+"
    compile "me.leolin:ShortcutBadger:1.1.17@aar"
    compile "com.google.firebase:firebase-messaging:11.6.2"
    compile "com.google.android.gms:play-services-ads:15.0.0"
    // SUB-PROJECT DEPENDENCIES END
}

def promptForReleaseKeyPassword() {
    if (!cdvReleaseSigningPropertiesFile) {
        return;
    }
    if ('__unset'.equals(android.signingConfigs.release.storePassword)) {
        android.signingConfigs.release.storePassword = privateHelpers.promptForPassword('Enter key store password: ')
    }
    if ('__unset'.equals(android.signingConfigs.release.keyPassword)) {
        android.signingConfigs.release.keyPassword = privateHelpers.promptForPassword('Enter key password: ');
    }
}

gradle.taskGraph.whenReady { taskGraph ->
    taskGraph.getAllTasks().each() { task ->
      if(['validateReleaseSigning', 'validateSigningRelease', 'validateSigningArmv7Release', 'validateSigningX76Release'].contains(task.name)) {
         promptForReleaseKeyPassword()
      }
    }
}

def addSigningProps(propsFilePath, signingConfig) {
    def propsFile = file(propsFilePath)
    def props = new Properties()
    propsFile.withReader { reader ->
        props.load(reader)
    }

    def storeFile = new File(props.get('key.store') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'storeFile'))
    if (!storeFile.isAbsolute()) {
        storeFile = RelativePath.parse(true, storeFile.toString()).getFile(propsFile.getParentFile())
    }
    if (!storeFile.exists()) {
        throw new FileNotFoundException('Keystore file does not exist: ' + storeFile.getAbsolutePath())
    }
    signingConfig.keyAlias = props.get('key.alias') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'keyAlias')
    signingConfig.keyPassword = props.get('keyPassword', props.get('key.alias.password', signingConfig.keyPassword))
    signingConfig.storeFile = storeFile
    signingConfig.storePassword = props.get('storePassword', props.get('key.store.password', signingConfig.storePassword))
    def storeType = props.get('storeType', props.get('key.store.type', ''))
    if (!storeType) {
        def filename = storeFile.getName().toLowerCase();
        if (filename.endsWith('.p12') || filename.endsWith('.pfx')) {
            storeType = 'pkcs12'
        } else {
            storeType = signingConfig.storeType // "jks"
        }
    }
    signingConfig.storeType = storeType
}

for (def func : cdvPluginPostBuildExtras) {
    func()
}

// This can be defined within build-extras.gradle as:
//     ext.postBuildExtras = { ... code here ... }
if (hasProperty('postBuildExtras')) {
    postBuildExtras()
}
apply plugin: 'com.google.gms.google-services'

, и это код admobв файле app.component.ts

const bannerConfig: AdMobFreeBannerConfig = {
  // add your config here
  // for the sake of this example we will just use the test config
  id: 'ca-app-pub-5**********70302~27*****190', //my app id 
  isTesting: true,
  autoShow: true
 };
 this.admobFree.banner.config(bannerConfig);

 this.admobFree.banner.prepare()
   .then(() => {
     // banner Ad is ready
     // if we set autoShow to false, then we will need to call the show method here
   })
   .catch(e => console.log(e));``
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...