В окончательном скомпилированном манифесте в моих файлах манифестов отсутствует screenOrientation - PullRequest
2 голосов
/ 24 апреля 2020

Мой последний AndroidManifest.xml после того, как все это объединено, имеет screenOrientation, которого у меня нет в моих собственных манифестах. Файл слияния имеет следующий файл:

957-->[:adsmodule] pathtoadsmodule/build/intermediates/library_manifest/googleDebug/AndroidManifest.xml:70:13-36 958 android:screenOrientation="portrait"

Так вот, откуда он исходит, но в самом файле нет screenOrientation, фактически он имеет следующее:

    <!-- removed screen orientation -->
    <activity
        android:name="some activity"
        android:configChanges="keyboard|orientation"
        android:exported="true"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" >
    </activity>

И на моем последнем AndroidManifest.xml я вижу это:

    <!-- removed screen orientation -->
    <activity
        android:name="some activity"
        android:configChanges="keyboard|orientation"
        android:exported="true"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" >
    </activity>

Даже мой комментарий <!-- removed screen orientation --> есть, но все же он имеет screenOrientation, поэтому я просто не не понимаю, что происходит.

Если я найду каталог build в adsmodule, я не найду ничего со словами portrait в нем. Так, где это вставляется?

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

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

Чтобы удалить свойство из манифеста с более низким приоритетом вне вашего контроля, вы можете использовать маркер узла, такой как tools: node = "remove" в вашем манифесте. Это заменит эвристику слияния.

В вашем манифесте объявите следующее:

<activity
    android:name="some activity">
      <meta-data android:screenOrientation="portrait"
  tools:node="remove"/>
</activity>

Это удалит элемент screenOrientation из действия «некоторая активность» из объединенного манифеста.

Узнайте больше здесь: https://developer.android.com/studio/build/manifest-merge#merge_rule_markers

0 голосов
/ 30 апреля 2020

Инструмент слияния манифеста объединяет все элементы XML из каждого файла, следуя некоторой эвристике слияния и подчиняясь предпочтениям слияния, которые вы определили с помощью специальных атрибутов XML. На этой странице описывается, как работает слияние манифеста и как вы можете применить настройки слияния для разрешения конфликтов слияния.

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

enter image description here

Я приглашаю вас прочитать больше об эвристике конфликта слияния из официальной документации для лучшего понимания того, что на самом деле происходит в вашем случае

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...