0

我将 OneSignal 推送通知集成到我的应用程序中,一切都运行良好,直到我升级到 Android 12 (31)。当我升级时,AndroidStudio 向我报告了这个错误,我真的不知道我需要做什么来避免它:

Manifest merger failed : android:exported needs to be explicitly specified
for <service>. Apps targeting Android 12 and higher are required to specify
an explicit value for `android:exported` when the corresponding component
has an intent filter defined.

安卓清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.my.app">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="oppo.permission.OPPO_COMPONENT_SAFE"/>
<uses-permission android:name="com.huawei.permission.external_app_settings.USE_COMPONENT"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<application
    android:name="com.my.app.MainApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:networkSecurityConfig="@xml/network_security_config"
    android:theme="@style/AppTheme"
    tools:ignore="GoogleAppIndexingWarning">

    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="@string/admob_app_ID" />

    <activity
        android:name="com.my.app.activity.StepActivity"
        android:screenOrientation="portrait"
        android:theme="@style/Splash">
    </activity>
    <activity android:name="com.my.app.activity.PrivacyPolicyActivity"
        android:screenOrientation="portrait"/>
    <activity android:name="com.my.app.activity.TermsToUseActivity"
        android:screenOrientation="portrait"/>
    <activity android:name="com.my.app.activity.SplashActivity"
        android:screenOrientation="portrait"
        android:exported="true" 
        tools:node="merge">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="com.my.app.activity.MainActivity"
        android:screenOrientation="portrait"/>
    <activity android:name="com.my.app.activity.PremiumActivity"
        android:screenOrientation="portrait"/>
    <activity android:name="com.my.app.activity.ChooseServerActivity"
        android:screenOrientation="portrait"/>

    <service
        android:name="com.my.app.OneSignal.MyNotificationExtenderService"
        android:exported="true"
        tools:node="merge"
        android:permission="android.permission.BIND_JOB_SERVICE">
        <intent-filter>
            <action android:name="com.onesignal.NotificationExtender" />
        </intent-filter>
    </service>

    <service
        android:name="com.my.app.service.BackgroundJobService"
        android:permission="android.permission.BIND_JOB_SERVICE"
        android:enabled="true"
        android:exported="true"
        tools:node="merge"/>

    <service
        android:name="com.my.app.service.MyService"
        android:exported="false"
        tools:node="merge">
        <intent-filter>
            <action android:name="androidsrc.intent.action.PICK_PLUGIN" />
            <category android:name="androidsrc.intent.category.ADD_PLUGIN" />
        </intent-filter>
    </service>

    <receiver android:name="com.my.app.service.BootCompletedReceiver"
        android:enabled="true"
        android:exported="true"
        tools:node="merge">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
            <action android:name="android.intent.action.QUICKBOOT_POWERON"/>
        </intent-filter>
    </receiver>
</application>

build.gradle(应用程序):

    manifestPlaceholders = [onesignal_app_id               : "xxxxx-xxxx-xxxx-xxx-xxxxxxxx",
                            onesignal_google_project_number: "REMOTE"]
4

0 回答 0