Подкласс PreferenceActivity не должен экспортироваться в манифесте (ExportedPreferenceActivity) - PullRequest
0 голосов
/ 04 января 2019

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>

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

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

<category android:name="android.intent.category.LAUNCHER"/>
0 голосов
/ 28 апреля 2019

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

<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" />
...