Intereting Posts
DuplicateFileException m4b + игровые сервисы 9.0 IllegalArgumentException: не обнаружено никакого поиска для id для фрагмента при быстром переключении вкладок ActionBar Как узнать номер SimSlot для каждого Call / sms? Ошибка анализа данных org.json.JSONException: значение <br типа java.lang.String не может быть преобразовано в JSONObject Как получить «сетевое» время (из параметра «Автоматический» под названием «Использовать сетевые значения»), а не время на телефоне? Gradle исключает файл из sourceSet не работает Пакет браузера Chrome для Android-приложения HTML5 Загрузка и загрузка изображений Android с помощью Base64 в JSON вызывает ошибку в памяти Некоторые вопросы о Gradle для Android Development Java.util.ConcurrentModificationException и SharedPreference Как обмениваться информационными ссылками в твиттере, gmail, facebook и т. Д. Что произойдет, если оставить «полезную нагрузку разработчика» в качестве пустой биллинга Google Play In-app Вертикальная компоновка, 2 элемента, сделайте верхнюю часть заполнить оставшееся пространство (снизу один имеет wrap_content) Как захватить / записать клип из видео URL в Android и сохранить на телефон Используйте метод .GetMapAsync вместо .getMap с сервисами Google Play (Xamarin)

Могу ли я отключить плагин Firebase для конкретного вкуса?

В настоящее время я тестирую костюм для аналитики Firebase, но я столкнулся с одной небольшой проблемой, мое приложение распространяется как в google play, так и в магазине amazon (что не поддерживает сервисы google play), поэтому для аромата амазонки я хочу Удалить зависимость от Firebase (которую я уже знаю, как это сделать), но мне также нужно удалить плагин Firebase, чтобы он не генерировал исключение при создании.

Это то, что у меня есть сейчас:

productFlavors { google { applicationId 'google app id' } amazon { applicationId 'amazon app id' } } dependencies { googleCompile 'com.google.firebase:firebase-analytics:9.0.0' amazonCompile 'com.amazonaws:aws-android-sdk-mobileanalytics:2.2.12' amazonCompile('com.crashlytics.sdk.android:crashlytics:2.5.1@aar') { transitive = true; } } apply plugin: 'com.google.gms.google-services' 

Но мне нужно удалить плагин только в том случае, если это аромат амазонки.

Возможно ли это? Или, по крайней мере, есть что-то близкое, что я могу попробовать?

ОБНОВИТЬ:

Согласно запросу Стива, я пошел и попробовал версию с Firebase на своих планшетах Amazon Kindle, и это действительно работает, даже если вы не установили на них сервисы Google Play.

По мнению Стива, аналитика Firebase работает даже без сервисов Google Play. Но мы по-прежнему можем отключить плагин google services для ароматов.

Попробуйте добавить такой код:

  apply plugin: 'com.google.gms.google-services' android.applicationVariants.all { variant -> if (!variant.name.contains("flavorName")) { project.tasks.each { t -> if (t.name.contains("GoogleServices")) { // Remove google services plugin variant.getVariantData().resourceGenTask.getTaskDependencies().values.remove(t); } } } } 

Здесь я отключу сервисы google для всех вкусов, которые в их имени не содержат «flavorName». Вы должны изменить условия в соответствии с вашими требованиями. И обратите внимание, что это следует добавить после apply plugin: 'com.google.gms.google-services' . Надеюсь, поможет.

Хотя Firebase официально не поддерживает устройства без сервисов Google Play, на самом деле Google Analytics должна работать на таких устройствах, и вам не нужно фактически отключать Firebase (или удалять плагин) в вашей сборке Amazon. Вы уже пробовали?

Вполне возможно, что, поскольку некоторые библиотеки Google Play Services по- прежнему должны быть включены в ваш аромат без использования firebase, некоторые записи, связанные с firebase, попадают в окончательный объединенный AndroidManifest.xml.

Таким образом, если в дополнение к удалению задач градиента, добавленных плагином Google Services (как описано в ответе Junyue Cao), вы хотите удалить связанные с Firebase ресивер, службу, провайдер, использование-разрешение или другие теги из окончательного объединенного AndroidManifest, вы можете добавить маркеры узлов в AndroidManifest.xml, находящиеся в подкаталоге App, build config или build variant.

Если маркеры узлов установлены на «удалить», то в конечном объединенном AndroidManifest.xml не будут присутствовать соответствующие теги-приемники, службы, поставщика, использования-разрешения.

Например, вот что вы могли бы добавить в AndroidManifest.xml в гипотетическом источнике источника аромата «nofirebase» проекта (app / src / nofirebase /):

  <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" tools:node="remove" /> <receiver android:name="com.google.android.gms.measurement.AppMeasurementReceiver" tools:node="remove" /> <receiver android:name="com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" tools:node="remove" /> <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" tools:node="remove" > </receiver> <service android:name="com.google.android.gms.measurement.AppMeasurementService" tools:node="remove" /> <service android:name="com.google.firebase.iid.FirebaseInstanceIdService" tools:node="remove"/> <provider android:name="com.google.firebase.provider.FirebaseInitProvider" android:authorities="com.you.yourapp.firebaseinitprovider" tools:node="remove"/>