При попытке скомпилировать ранее работавшее приложение для Android с Android Studio 3.5.2, Android SDK 28 и cordova-plugin-firebase я прочитал здесь , что я должен установить cordova-plugin-firebasex в качестве рабочегои в настоящее время поддерживается вилка, которая работает на Androidx.
Первый вопрос, удалив cordova-plugin-firebase, я решил следующим образом:
Нельзя удалить этот плагин обычным способом
cordova plugin remove cordova.plugin.firebase --save
Это удаляет всеКаталог / main из-за ошибки в файле plugin.xml :
<resource-file src="src/android/google-services.json" target="."/>
и удаление не удалось.
Я удалил эту строку из файла XML и сновапопытался удалить плагин через кли.
Это приводит к этому сообщению:
Использование «requireCordovaModule» для загрузки модуля non-cordova «xcode» не поддерживается. Вместо этого добавьте этот модуль к своим зависимостям и используйте обычные «require» для его загрузки.
Следуя инструкциям здесь Я редактировал плагины / cordova-plugin-firebase / scripts / ios /helper.js
Я добавил
var xcode = require("xcode");
вверху файла и удалил два экземпляра из
var xcode = context.requireCordovaModule("xcode");
Снова попытайтесь удалитьи получил плагин
Удаление cordova-plugin-firebase из ios Удаление cordova-plugin-firebase из osx Удаление "cordova-plugin-firebase" Не удается найти файл plugin.xml для плагина "cordova-plugin-google-analytics ".
Я удалил и переустановил плагин google analytics, и плагин firebase был успешно удален.
Затем я добавил Firebasex и рекомендуемые версии wranglers для сервисов воспроизведения и firebase:
cordova plugin add cordova-plugin-firebasex
cordova plugin add cordova-android-play-services-gradle-release
cordova-android-firebase-gradle-release
Я получаю следующие ошибки компиляции:
Не удалосьопределить зависимости задачи ': app: compileReleaseJavaWithJavac'. В проекте «приложение» разрешенная зависимость библиотеки служб Google Play зависит от другой в точной версии (например, «[15.0. 1]», но не разрешается в этой версии. Поведение, демонстрируемое библиотекой, будет неизвестно. : com.google.android.gms: play-services-flags: 15.0.1 -> com.google.android.gms: play-services-basement @ [15.0.1], но версия play-services-basement была 17.0. 0.
Я попытался очистить весь каталог для ': 15.0.1' и '@ 15.0.1', но не могу найти виновника. Я попытался удалить переустановку плагина с помощью следующегоспецификаторы версии:
cordova plugin add cordova-plugin-firebasex \
--variable ANDROID_PLAY_SERVICES_TAGMANAGER_VERSION=17.0.0 \
--variable ANDROID_FIREBASE_CORE_VERSION=17.0.0 \
--variable ANDROID_FIREBASE_MESSAGING_VERSION=19.0.0 \
--variable ANDROID_FIREBASE_CONFIG_VERSION=18.0.0 \
--variable ANDROID_FIREBASE_PERF_VERSION=18.0.0 \
--variable ANDROID_FIREBASE_AUTH_VERSION=18.0.0 \
--variable ANDROID_CRASHLYTICS_VERSION=2.10.1 \
--variable ANDROID_CRASHLYTICS_NDK_VERSION=2.1.0 \
, что приводит к новому несоответствию зависимостей:
Не удалось определить зависимости задачи ': app: preReleaseBuild'.
В проекте «приложение» разрешенная зависимость библиотеки служб Google Play зависит от другой в конкретной версии (например, «[11.0. 1]», но не разрешается в этой версии. Поведение, демонстрируемое библиотекой, будет неизвестно.Зависимость Фаяling: com.google.android.gms: play-services-tagmanager-v4-impl: 11.0.1 -> com.google.android.gms: play-servic es-basement @ [11.0.1], но play-services-basement версия была 17.0.0.
Поэтому я также попытался перенести все библиотеки в их самые последние версии, в результате чего для приложения был создан следующий build.gradle:
dependencies {
implementation fileTree(dir: 'libs', include: '*.jar')
// SUB-PROJECT DEPENDENCIES START
implementation(project(path: ":CordovaLib"))
implementation 'com.google.android.gms:play-services-auth:17.0.0'
implementation 'com.google.android.gms:play-services-identity:17.0.0'
implementation "androidx.legacy:legacy-support-v4:1.0.0"
implementation 'com.google.firebase:firebase-core:17.2.1'
implementation 'com.google.firebase:firebase-messaging:20.0.0'
implementation 'com.google.firebase:firebase-config:19.0.3'
implementation 'com.google.firebase:firebase-perf:19.0.1'
implementation 'com.google.android.gms:play-services-analytics:17.0.0'
implementation "com.google.android.gms:play-services-tagmanager:17.0.0"
implementation "com.google.firebase:firebase-core:17.2.1"
implementation 'com.google.firebase:firebase-messaging:20.0.0'
implementation 'com.google.firebase:firebase-config:19.0.3'
implementation 'com.google.firebase:firebase-perf:19.0.1'
implementation 'com.google.firebase:firebase-auth:19.1.0'
implementation "com.crashlytics.sdk.android:crashlytics:2.10.1"
implementation 'com.crashlytics.sdk.android:crashlytics-ndk:2.1.1'
implementation "me.leolin:ShortcutBadger:1.1.22"
// SUB-PROJECT DEPENDENCIES END }
Что мне наплевать на
Зависимость не удалась: com.google.android.gms: play-services-flags: 15.0.1 -> com.google.android.gms: play-services-basement @ [15.0.1], но версия play-services-basement была 17.0.0.
Я все еще новичок в зависимости от библиотек (хотя я бродил поКривая обучения за последние три дня до точки, в которой я нуждаюсь в кислороде) - как я могу найти виновника здесь, и почему плагины, которые должны делать это для меня, терпят неудачу?