yandexmobile / metrica-plugin-cordova

Cordova plugin for Yandex AppMetrica SDK
Other
11 stars 26 forks source link

Manifest merger failed #8

Closed mifkys closed 6 years ago

mifkys commented 6 years ago

При билде приложения выпадает в эксепшн:

:processDebugManifest FAILED

BUILD FAILED

Total time: 3.571 secs

FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ':processDebugManifest'.

    Manifest merger failed : Attribute meta-data#metrica:api:level@value value=(58) from AndroidManifest.xml:104:51-69 is also present at [:mobmetricalib-2.78:] AndroidManifest.xml:35:17-35 value=(63). Suggestion: add 'tools:replace="android:value"' to element at AndroidManifest.xml:104:7-71 to override.

Окружение:

yandex-appmetrica-plugin-cordova 0.2.0 "AppMetrica" @ionic/cli-utils : 1.19.2 ionic (Ionic CLI) : 3.20.0

local packages:

@ionic/app-scripts : 3.1.5
Cordova Platforms  : android 6.3.0
Ionic Framework    : ionic-angular 3.9.2

System:

Android SDK Tools : 26.1.1
Node              : v8.9.0
npm               : 5.5.1
OS                : Windows 10
NesterovichAlexey commented 6 years ago

Привет. Это после обновления или подключаешь в первый раз? Имеется свой манифест? Может еще какой-то плагин зависит от метрики?

mifkys commented 6 years ago

Привет. Подключаю первый раз. Манифест генерится кордовой или в чем вопрос? Выяснил, что конфликтует с плагином https://github.com/appodeal/appodeal-cordova-plugin После его удаления все работает, но это не вариант

mifkys commented 6 years ago

Привет, судя по всему имеет место конфликт библиотеки yandex-metrica-2.73.jar из плагина https://github.com/appodeal/appodeal-cordova-plugin, который используется для показа рекламы, и самого плагина metrica-plugin-cordova. Как-то можно разрулить эту ситуацию без последствий для работы обоих плагинов?

NesterovichAlexey commented 6 years ago

Привет. Есть два варианта: 1) Склонировать metrica-plugin-cordova. В файле platforms/android/build.gradle заменить 2.78 на 2.73. И подключить его к своему приложению. 2) Склонировать appodeal-cordova-plugin. Удалить libs/Android/yandex-metrica-2.73.jar. В файле plugin.xml удалить строчки 113-127(связанные с метрикой) и 293 строчку: <source-file src="libs/Android/yandex-metrica-2.73.jar" target-dir="libs" />. И подключить его к своему приложению. Не проверял работоспособность, но должно работать. Если нет, то надо jar-ку заменить более новой и в plugin.xml актулизировать данные.

P.S. Рекомендую второй вариант, т.к. библиотека будет новее.

mifkys commented 6 years ago

Да, сейчас как раз пытаюсь провернуть второй вариант. По результатам отпишусь.

mifkys commented 6 years ago
  1. Скопировал директорию плагина app\plugins\com.appodeal.plugin в другую папку
  2. Указал в скопированном plugin.xml в 120 строке значение 63 и в 259 - libs/Android/mobmetricalib-2.78-jar.jar
  3. Скопировал соответствующий файл в папку libs\Android
  4. Удалил плагин из проекта и заново добавил его cordova plugin add path\to\fixedplugin --save

Все заработало. Спасибо.

iderevitskiy commented 5 years ago

У меня похожая проблема, портировал yandex-metrica на Unity. При сборке на Android вылезла ошибка:

"C:\Users\iderevitskiy\Documents\Party_Monster\Temp\gradleOut\src\main\AndroidManifest.xml:42:17-35 Error: Attribute meta-data#metrica:api:level@value value=(72) from [:mobmetricalib-3.4.0:] AndroidManifest.xml:42:17-35 is also present at [:yandex-metrica] AndroidManifest.xml:27:17-35 value=(70). Suggestion: add 'tools:replace="android:value"' to element at AndroidManifest.xml to override. C:\Users\iderevitskiy\Documents\Party_Monster\Temp\gradleOut\src\main\AndroidManifest.xml:47:13-37 Error: Attribute service#com.yandex.metrica.ConfigurationService@exported value=(false) from [:mobmetricalib-3.4.0:] AndroidManifest.xml:47:13-37 is also present at [:yandex-metrica] AndroidManifest.xml:32:13-36 value=(true). Suggestion: add 'tools:replace="android:exported"' to element at AndroidManifest.xml:44:9-60:19 to override."