当前位置: 首页 > 知识库问答 >
问题:

推送通知中的清单合并失败

斜烈
2023-03-14

我在 react 中使用本机推送通知,并收到此错误:

安装应用程序失败。请确保您已设置Android开发环境:https://reactnative.dev/docs/environment-setup.

错误:命令失败:gradlew。bat-app:installDebug-PreactNativeDevServerPort=8081

D:\F 驱动器\Sayalani React\React Native\basicgui\android\app\src\main\AndroidManifest.xml

错误:android:exported需要为显式指定。当相应的组件定义了意图过滤器时,针对Android 12和更高版本的应用需要为< code>android:exported指定一个显式值。详见https://developer . Android . com/guide/topics/manifest/activity-element # exported。

AndroidManifest.xml代码:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.basicgui">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:theme="@style/AppTheme">
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode"
        android:launchMode="singleTask"
        android:windowSoftInputMode="adjustResize"
        android:exported="false">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
        <!-- Change the value to true to enable pop-up for in foreground on receiving remote notifications (for prevent duplicating while showing local notifications set this to false) -->
        <meta-data  android:name="com.dieam.reactnativepushnotification.notification_foreground"
                    android:value="false"/>
        <!-- Change the resource name to your App's accent color - or any other color you want -->
        <meta-data  android:name="com.dieam.reactnativepushnotification.notification_color"
                    android:resource="@color/white"/> <!-- or @android:color/{name} to use a standard color -->

        <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationActions" />
        <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" />
        <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.QUICKBOOT_POWERON" />
                <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
            </intent-filter>
        </receiver>

        <service
            android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService"
            android:exported="true" >
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
    </application>
</manifest>

共有2个答案

杜禄
2023-03-14

我花了一天时间找到这个错误的解决方案,我检查了整个项目中的活动,服务,接收器,但没有发现任何错误,并决定单独安装所有软件包(在新的干净项目中,您需要的RN版本)每次我添加新软件包时测试构建,并发现我的 react-native-onesignal 有一个破坏构建的旧版本;

所以我安装了新版本,问题解决了

梁丘柏
2023-03-14

错误消息非常清楚:

android:exported需要为。针对Android 12和更高版本的应用需要为Android指定一个显式值:当相应的组件定义了意图过滤器时导出

在清单文件中,有几个接收方没有导出的属性:

<receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationActions" />
        <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" />
        <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.QUICKBOOT_POWERON" />
                <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
            </intent-filter>
        </receiver>
 类似资料:
  • 我试图在Android Studio中编译Android wear的通知示例,但出现了以下错误: 错误:任务执行失败:应用程序:进程调试清单。 清单合并失败:uses-sdk: minSdkVersion 8不能小于库中声明的版本9[com.android.support: gridresent-v7:25.0.1] /Users/leojunquera/.android/build-cache/

  • 错误:任务“:app:ProcessDebugManifest”执行失败。 清单合并失败:来自AndroidManifest.xml:13:9-42的属性application@icon value=(@mipmap/appiconnew)也存在于[com.pnikosis:materialish-progress:1.0]AndroidManifest.xml:13:9-45 value=(@d

  • 错误:清单合并失败:属性application@appcomponentFactory value=(Android.support.v4.app.coreComponentFactory)来自[com.android.support:support-compat:28.0.0]AndroidMANIFEST.xml:22:18-91也存在于[AndroidX.core:core:1.0.0]An

  • 我似乎得到了这样的错误:

  • 我在关于支付网关的项目中遇到了麻烦。根据EBS的指导原则,我将模块导入到我的项目中并进行编译。但是当它构建时,它给我的错误是:`error:execution for task':app:processDebugManifest'。 清单合并失败:来自AndroidManifest.xml:14:9-43的属性application@icon value=(@mipmap/ic_launcher)

  • 首先,我想声明我一直在研究推送通知和web通知之间的关系,但我有点困惑。 我从这里读到PWAs的推送通知在Safari上的iOS(iPhone)不起作用:从PWA向iOS发送推送通知 然而,如果iPhone用户使用的是Chrome,这是否意味着它们可以工作呢?或者推送通知在任何浏览器上对iPhone中的PWAs都不起作用? 这就把我带到了web通知。web通知在后台对PWAs起作用吗?我的问题是w