я пытаюсь добавить плагин 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));``