Подкласс PreferenceActivity не следует экспортировать в манифест (ExportedPreferenceActivity)

Android Studio выдает предупреждение о ворсинке:

PreferenceActivity subclass com.myapp.app.SettingsActivity should not be 
exported in the manifest

Inspection info:Fragment injection gives anyone who can send your 
PreferenceActivity an intent the ability to load any fragment, with any 
arguments, in your process.  Issue id: ExportedPreferenceActivity

На самом деле я никогда не замечал, когда это предупреждение начало появляться, но я не могу найти способ исправить его, не нарушая действия. SettingsActivity - это AppCompatPreferenceActivity с двумя PreferenceFragments, который создается после SplashScreen. Я уже пробовал установить android:exported = "false" в моем Manifest.xml, но он выдает ошибку, потому что action.VIEW не может отключить экспорт.

Соответствующий код Manifest.xml:

<activity
        android:name = ".SettingsActivity"
        android:label = "@string/app_name"
        android:theme = "@style/SplashScreen">
        <intent-filter>
            <action android:name = "android.intent.action.VIEW" />
            <action android:name = "android.intent.action.MAIN" />
            <category android:name = "android.intent.category.LAUNCHER" />
        </intent-filter>

        <meta-data android:name = "android.app.shortcuts"
            android:resource = "@xml/shortcuts" />
    </activity>
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
217
2

Ответы 2

По возможности удалите:

<intent-filter>
      <action android:name = "android.intent.action.VIEW" />
      <action android:name = "android.intent.action.MAIN" />
      <category android:name = "android.intent.category.LAUNCHER" />
</intent-filter>

Если вы не можете удалить все это, просто удалите эту строку:

<action android:name = "android.intent.action.VIEW" />

не открывайте его с помощью пусковой установки (что похоже на то, на что он жалуется):

<category android:name = "android.intent.category.LAUNCHER"/>

Другие вопросы по теме