Tools replace android allowbackup

Содержание
  1. Adding tools:node=»replace» to Android Manifest application tag causes FCM not working #477
  2. Comments
  3. sreejithbnaick commented Apr 25, 2018 •
  4. Summary:
  5. Environment
  6. Description of the problem:
  7. Steps to reproduce:
  8. Observed Results:
  9. Expected Results:
  10. Adding tools:node=»replace» to Android Manifest application tag causes FCM not working #477
  11. Comments
  12. sreejithbnaick commented Apr 25, 2018 •
  13. Summary:
  14. Environment
  15. Description of the problem:
  16. Steps to reproduce:
  17. Observed Results:
  18. Expected Results:
  19. Что делает атрибут tools: replace в файле манифеста Android?
  20. 1 ответ
  21. Android Manifest merge conflict (backup rules) #9
  22. Comments
  23. ljwan12 commented Jan 14, 2020
  24. ljwan12 commented Jan 14, 2020
  25. elitvynov commented Apr 23, 2020
  26. elitvynov commented Apr 28, 2020
  27. syrakozz commented May 3, 2020
  28. Cotel commented May 8, 2020
  29. ManakaMichihito commented May 14, 2020
  30. lfg-ryan commented May 14, 2020
  31. ManakaMichihito commented May 21, 2020
  32. ManakaMichihito commented May 22, 2020 •
  33. VladimirKuzmin-azur commented Jul 14, 2020 •
  34. m-kul commented Jan 8, 2021
  35. af-vs commented Jan 14, 2021
  36. ‘tools:replace=»android:allowBackup»‘ к элементу У меня есть проблема, когда я добавляю реализацию ‘com.github.MdFarhanRaja:SearchableSpinner:2.0’ предупреждение предложить мне Это мой Manifest.xml но когда я изменюсь с этим новые ошибки показывают, и написала мне Что предполагают изменения android:appComponentFactory это Что мне делать, если я хочу его реализовать? Это мой модуль: приложение + я добавляю свой build.gradle Это моя проекционная сборка 2 ответа Обновление: Я перепробовал все. Есть ли что-то не так с инструментом Манифеста слияния? tools:replace tools:remove tools:ignore tools:node Не удалось устранить следующую ошибку: D:\AndroidStudioProjects\Iknowthis2\app\src\main\AndroidManifest.xml:29:9-36 Error: Attribute application@allowBackup. Я использую : Android Studio 2.2.2 Компиляция SDK версии: API 23 Версия Инструмента Сборки 23.0.2 Я пытаюсь использовать библиотеку SweetAlert for Android для диалогов в моем приложении android поэтому после того, как я добавил compile ‘cn.pedant.sweetalert:library:1.3’ к своим зависимостям, я. После android:allowBackup=»false» добавить tools:replace=»android:allowBackup» . используйте этот код в файле mainfest, чтобы закрыть эту проблему. Как уже упоминалось в комментариях, вы используете стороннюю библиотеку, которая зависит от библиотеки поддержки, и вы используете AndroidX в своем проекте. Это можно исправить с помощью Jetifier: Перейдите в свой файл gradle.properties и добавьте эту строку: android.enableJetifier: если установлено значение true, этот флаг указывает на то, что вы хотите иметь поддержку инструментов (от плагина Android Gradle) для автоматического преобразования существующих сторонних библиотек, как если бы они были написаны для AndroidX. Если флаг отсутствует, Android Studio ведет себя так, как если бы флаг был установлен в false. Если это все еще вызывает ошибку, пожалуйста, используйте Migrate to AndroidX из меню Рефактора, он должен автоматически исправить это. Похожие вопросы: Я следую учебнику по разработке HeadFirst Android и столкнулся с проблемами после добавления: частный ActionBarDrawerToggle drawerToggle; Элемент управления устарел, поэтому я последовал инструкциям. Я пытаюсь использовать firebase в своем приложении Android. Это мой файл Build.gradle apply plugin: ‘com.android.application’ android < compileSdkVersion 28 defaultConfig < applicationId. Когда я пытаюсь запустить приложение, я получаю следующую ошибку. Что я должен сделать, чтобы решить эту проблему? Атрибут application@appComponentFactory. Источник
  37. 2 ответа
  38. Похожие вопросы:

Adding tools:node=»replace» to Android Manifest application tag causes FCM not working #477

Comments

sreejithbnaick commented Apr 25, 2018 •

Summary:

If I add tools:node=»replace» to AndroidManifest Application tag, Android App will never get
FirebaseInstanceIdService onTokenRefresh() callback and FCM doesn’t work.

Environment

  • Android device: Emulator or Any device
  • Android OS version: 7.1.1
  • Google Play Services version: 124510001
  • Firebase/Play Services SDK version: 15.0.0 or 12.0.1

Description of the problem:

Adding tools:node=»replace» to AndroidManifest Application tag as below

will cause the app never getting FirebaseInstanceIdService onTokenRefresh() callback.

I can manually call FirebaseInstanceId.getInstance().getToken() to get a token. But this token will never work. Using this token will give success result on first call, but from next call onwards it will give notRegistered error.

Steps to reproduce:

  1. Create any sample project with FCM messaging
  2. Just add tools:node=»replace» to application tag in AndroidManifest
  3. Build and install the app
Читайте также:  Как открыть апк файл андроид

Observed Results:

  • onTokenRefresh never called. Manual call to getToken() will give a token, but will give notRegistered error all the time (except first time)

Expected Results:

  • On every fresh install of the app, onTokenRefresh method of FirebaseInstanceIdService implementation will be called everytime and given token will work properly

Please look into this issue, since tools:node=»replace» is used widely for solving manifest merge issues.

Adding tools:node=»replace» to any manifest file (doesn’t need to be main manifest, it can be sub module manifest or library manifest) can cause the issue.

(PS: I was trying to migrate from GCM to FCM. And GCM was working for us, but for some users token was giving notRegistered error. I believe it is because of this.)

The text was updated successfully, but these errors were encountered:

Источник

Adding tools:node=»replace» to Android Manifest application tag causes FCM not working #477

Comments

sreejithbnaick commented Apr 25, 2018 •

Summary:

If I add tools:node=»replace» to AndroidManifest Application tag, Android App will never get
FirebaseInstanceIdService onTokenRefresh() callback and FCM doesn’t work.

Environment

  • Android device: Emulator or Any device
  • Android OS version: 7.1.1
  • Google Play Services version: 124510001
  • Firebase/Play Services SDK version: 15.0.0 or 12.0.1

Description of the problem:

Adding tools:node=»replace» to AndroidManifest Application tag as below

will cause the app never getting FirebaseInstanceIdService onTokenRefresh() callback.

I can manually call FirebaseInstanceId.getInstance().getToken() to get a token. But this token will never work. Using this token will give success result on first call, but from next call onwards it will give notRegistered error.

Steps to reproduce:

  1. Create any sample project with FCM messaging
  2. Just add tools:node=»replace» to application tag in AndroidManifest
  3. Build and install the app

Observed Results:

  • onTokenRefresh never called. Manual call to getToken() will give a token, but will give notRegistered error all the time (except first time)

Expected Results:

  • On every fresh install of the app, onTokenRefresh method of FirebaseInstanceIdService implementation will be called everytime and given token will work properly

Please look into this issue, since tools:node=»replace» is used widely for solving manifest merge issues.

Adding tools:node=»replace» to any manifest file (doesn’t need to be main manifest, it can be sub module manifest or library manifest) can cause the issue.

(PS: I was trying to migrate from GCM to FCM. And GCM was working for us, but for some users token was giving notRegistered error. I believe it is because of this.)

The text was updated successfully, but these errors were encountered:

Источник

Что делает атрибут tools: replace в файле манифеста Android?

Я нашел несколько вопросов об ошибках, связанных с tools:replace , но нигде в Интернете о том, что он делает.

Я нашел справочник по атрибутам инструментов, похоже, это устаревший атрибут это больше не документируется.

Может кто-нибудь объяснить, что он делает? Например, tools:replace=»android:label,android:supportsRtl,android:allowBackup»> находится как атрибут тега application . В том же теге application xml указаны android:label , android:supportsRtl и android:allowBackup , поэтому я могу только предположить , что он переопределит эти атрибуты если они указаны в тегах activity , вложенных в тег application . Эта функция может показаться бесполезной, поскольку я ожидал, что атрибуты application по умолчанию устанавливают свои дочерние атрибуты, если они не установлены.

Изменить: спасибо за ссылку на документы в своем ответе. Лично я считаю, что документация достаточно исчерпывающая, в ней даже приводятся примеры того, когда вы могли бы ее использовать. К сожалению, моя поисковая система не смогла найти это для меня. Эта ссылка была на самом деле первой в Google, но отсутствовала на DuckDuckGo .

1 ответ

tools:replace — это маркер атрибута, который можно использовать для перенастроить основной файл манифеста путем объединения определенных настроек манифеста из разновидностей (варианты сборки).

Читайте также:  Hotline miami для андроид встроенный кэш

Допустим, у вас есть следующий узел в главном манифесте, где определенное действие определяется как экспортированное:

Но для определенного варианта (варианта сборки) одно и то же действие не следует экспортировать. Итак, вы определяете файл манифеста barebone в папке аромата и добавляете узел с атрибутом замены:

При выборе целевого варианта в Активном варианте сборки система сборки объединит оба манифеста и заменит в главном узле манифеста атрибут android:exported на атрибут.

Подводя итог, вы используете этот маркер атрибута, когда у вас есть несколько разновидностей проекта, и каждый должен определять разные атрибуты для существующих узлов, определенных в основном файле манифеста.

Обратите внимание, что вы также можете полностью заменить полный узел, добавив вместо него tools:node=»replace» .

Источник

Android Manifest merge conflict (backup rules) #9

Comments

ljwan12 commented Jan 14, 2020

tools:replace specified at line:20 for attribute android:fullBackupContent, but no new value specified

The text was updated successfully, but these errors were encountered:

ljwan12 commented Jan 14, 2020

  • What went wrong:
    Execution failed for task ‘:android:processReleaseManifest’.

Manifest merger failed : Attribute application@fullBackupContent value=(@xml/vungle_backup_rule) from [com.vungle:publisher-sdk-android:6.4.11] AndroidManifest.xml:19:9-60
is also present at [com.appsflyer:af-android-sdk:4.11.0] AndroidManifest.xml:14:18-73 value=(@xml/appsflyer_backup_rules).
Suggestion: add ‘tools:replace=»android:fullBackupContent»‘ to element at AndroidManifest.xml:19:5-95:19 to override.

elitvynov commented Apr 23, 2020

  • What went wrong:
    Execution failed for task ‘:android:processReleaseManifest’.

Manifest merger failed : Attribute application@fullBackupContent value=(@xml/vungle_backup_rule) from [com.vungle:publisher-sdk-android:6.4.11] AndroidManifest.xml:19:9-60
is also present at [com.appsflyer:af-android-sdk:4.11.0] AndroidManifest.xml:14:18-73 value=(@xml/appsflyer_backup_rules).
Suggestion: add ‘tools:replace=»android:fullBackupContent»‘ to element at AndroidManifest.xml:19:5-95:19 to override.

Did you find any solution? I have this problem too

elitvynov commented Apr 28, 2020

This is working, thank you

syrakozz commented May 3, 2020

but it takes forever while building

Cotel commented May 8, 2020

I’m having a similar issue 😢

In the main manifest allowBackup is set to false. The task is failing for a dynamic module.

ManakaMichihito commented May 14, 2020

I have the same problem.

fullBackupContent is not only used by AppsFlyer.
There is also a library that dynamically sets fullBackupContent just like AppsFlyer.
We cannot always do a manual merge.

lfg-ryan commented May 14, 2020

I have the same problem. Vungle is also using this and I can’t tell how to merge them in Unity when all of this is auto-generated stuff.

ManakaMichihito commented May 21, 2020

AppsFlyer support only answers manual merges, no matter how many times we explain it, it doesn’t fix the issue.

ManakaMichihito commented May 22, 2020 •

They don’t seem to present anything other than manually merging AndroidManifext.xml.
The answer was an inquiry to Unity technologies.

tools: replace = «android: fullBackupContent»
If there is a person to go and solve

Is required:
android:fullBackupContent=»true»
&
AppsFlyer’s FullBackup rules
(XML : full-backup-content tag)

They said:
«We have to do this in order to do the attribution and tracking accurately, if not, the reinstall will always retrieve the old install data which should be deleted.»

VladimirKuzmin-azur commented Jul 14, 2020 •

android:fullBackupContent=»@xml/appsflyer_backup_rules» tools:replace=»android:fullBackupContent
This works just fine for me. Mediation Debugger also shows that Vungle if fine. But I am little worried for Vungle backup-ing.
Could some android sensei tell if this is fine solution or not?
p.s. doing this from Unity’s main manifest

m-kul commented Jan 8, 2021

This is working, thank you

Can anybody clarify, in which manifest file we need to add this? I cannot find appsflyer’s manifest file.

af-vs commented Jan 14, 2021

We see that this issue is indeed confusing and would like to elaborate a bit extra on this matter.

TL;DR

  • If you don’t wantAuto Backup — just set android:allowBackup=»false» in AndroidManifest and you are good to go
  • If you wantAuto Backup — you have to:
  1. Manually merge backup rules from conflicting SDKs such as Vungle and AppsFlyer (there could be more) into your own XML file (e.g. @xml/merged_backup_rules ).
  2. Specify this file by setting 2 attributes in AndroidManifest:
    • android:fullBackupContent=»@xml/merged_backup_rules» (to use your own rules)
    • tools:replace=»android:fullBackupContent» (to give your rules higher priority than rules from any SDK) in AndroidManifest

Some background:
Since Android 6.0 (API level 23) Android has an Auto Backup feature that will back up the app’s data into Google Drive every now and then automatically. This is enabled by default but may cause problems to some service providers like AppsFlyer and Vungle. The reason is that we save some data into SharedPreferences which are being backed up by Android, but we don’t expect this data to retain between installs. If this data is restored after the user reinstalls the app, we may report attribution for this app incorrectly. I assume, Vungle SDK has some similar challenges.

Since AppsFlyer uses AAR to distribute the library, together with the library jar we package AndroidManifest in which we specify backup rules that are important for our SDK to function properly. Unfortunately, Android as of today doesn’t have a solid merge mechanism so in case you have 2 libraries with conflicting values for the same attribute in AndroidManifest you get different kinds of merging conflict errors.

The only solution we can see for now without harming other SDKs is to merge such conflicts manually

As a result you should have this file with merged rules:

Источник

‘tools:replace=»android:allowBackup»‘ к элементу

У меня есть проблема, когда я добавляю реализацию ‘com.github.MdFarhanRaja:SearchableSpinner:2.0’ предупреждение предложить мне

Это мой Manifest.xml

но когда я изменюсь

с этим новые ошибки показывают, и написала мне

Что предполагают изменения android:appComponentFactory это

Что мне делать, если я хочу его реализовать?

Это мой модуль: приложение + я добавляю свой build.gradle

Это моя проекционная сборка

2 ответа

Обновление: Я перепробовал все. Есть ли что-то не так с инструментом Манифеста слияния? tools:replace tools:remove tools:ignore tools:node Не удалось устранить следующую ошибку: D:\AndroidStudioProjects\Iknowthis2\app\src\main\AndroidManifest.xml:29:9-36 Error: Attribute application@allowBackup.

Я использую : Android Studio 2.2.2 Компиляция SDK версии: API 23 Версия Инструмента Сборки 23.0.2 Я пытаюсь использовать библиотеку SweetAlert for Android для диалогов в моем приложении android поэтому после того, как я добавил compile ‘cn.pedant.sweetalert:library:1.3’ к своим зависимостям, я.

После android:allowBackup=»false» добавить tools:replace=»android:allowBackup» . используйте этот код в файле mainfest, чтобы закрыть эту проблему.

Как уже упоминалось в комментариях, вы используете стороннюю библиотеку, которая зависит от библиотеки поддержки, и вы используете AndroidX в своем проекте. Это можно исправить с помощью Jetifier:

Перейдите в свой файл gradle.properties и добавьте эту строку:

android.enableJetifier: если установлено значение true, этот флаг указывает на то, что вы хотите иметь поддержку инструментов (от плагина Android Gradle) для автоматического преобразования существующих сторонних библиотек, как если бы они были написаны для AndroidX. Если флаг отсутствует, Android Studio ведет себя так, как если бы флаг был установлен в false.

Если это все еще вызывает ошибку, пожалуйста, используйте Migrate to AndroidX из меню Рефактора, он должен автоматически исправить это.

Похожие вопросы:

Я следую учебнику по разработке HeadFirst Android и столкнулся с проблемами после добавления: частный ActionBarDrawerToggle drawerToggle; Элемент управления устарел, поэтому я последовал инструкциям.

Я пытаюсь использовать firebase в своем приложении Android. Это мой файл Build.gradle apply plugin: ‘com.android.application’ android < compileSdkVersion 28 defaultConfig < applicationId.

Когда я пытаюсь запустить приложение, я получаю следующую ошибку. Что я должен сделать, чтобы решить эту проблему? Атрибут application@appComponentFactory.

Источник

Оцените статью