清单合并失败,出现多个错误(已将接收方标签添加到文件中)

问题描述 投票:-2回答:1

我正在尝试在我的应用中实施AlarmManager,以在特定时间安排通知。<receiver>标签引起了问题。我需要这个方面的帮助。

这是我的AndroidManifest.xml文件:

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

        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <receiver android:name="AlarmReceiver"/>
            <activity android:name=".FirstActivity"></activity>
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />

                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <receiver android:name=".AlarmReceiver">
                <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED" />
                    <action android:name="android.intent.action.QUICKBOOT_POWERON" />
                </intent-filter>
            </receiver>
        </application>

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

    </manifest>

以下是日志:

java.lang.RuntimeException:清单合并失败,出现多个错误,请参阅日志在com.android.build.gradle.internal.tasks.manifest.ManifestHelperKt.mergeManifestsForApplication(ManifestHelper.kt:181)在com.android.build.gradle.tasks.ProcessApplicationManifest.doFullTask​​Action(ProcessApplicationManifest.java:218)在com.android.build.gradle.tasks.ProcessApplicationManifest.doIncrementalTask​​Action(ProcessApplicationManifest.java:324)在com.android.build.gradle.internal.tasks.IncrementalTask​​.handleIncrementalInputs(IncrementalTask​​.kt:111)在com.android.build.gradle.internal.tasks.IncrementalTask​​.access $ handleIncrementalInputs(IncrementalTask​​.kt:64)在com.android.build.gradle.internal.tasks.IncrementalTask​​ $ taskAction $$ inlined $ recordTaskAction $ 1.invoke(AndroidVariantTask.kt:51)在com.android.build.gradle.internal.tasks.IncrementalTask​​ $ taskAction $$ inlined $ recordTaskAction $ 1.invoke(AndroidVariantTask.kt:31)在com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:91)在com.android.build.gradle.internal.tasks.IncrementalTask​​.taskAction $ gradle(IncrementalTask​​.kt:134)在sun.reflect.GeneratedMethodAccessor124.invoke(未知来源)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在java.lang.reflect.Method.invoke(Method.java:498)在org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)在org.gradle.api.internal.project.taskfactory.IncrementalTask​​InputsTaskAction.doExecute(IncrementalTask​​InputsTaskAction.java:46)在org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)在org.gradle.api.internal.project.taskfactory.AbstractIncrementalTask​​Action.execute(AbstractIncrementalTask​​Action.java:25)在org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter $ 5.run(ExecuteActionsTaskExecuter.java:404)在org.gradle.internal.operations.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)处在org.gradle.internal.operations.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)处在org.gradle.internal.operations.DefaultBuildOperationExecutor $ 1.execute(DefaultBuildOperationExecutor.java:165)在org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)在org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)在org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)在org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:393)在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:376)在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access $ 200(ExecuteActionsTaskExecuter.java:80)在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter $ TaskExecution.execute(ExecuteActionsTaskExecuter.java:213)在org.gradle.internal.execution.steps.ExecuteStep.lambda $ execute $ 0(ExecuteStep.java:32)在java.util.Optional.map(Optional.java:215)在org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)在org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)在org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)在org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)在org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)在org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)在org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)在org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)在org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)在org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)在org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)在org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)在org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)在org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:201)在org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)在org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)在org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)在org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)在org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)在org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)在org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)在org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)在org.gradle.internal.execution.steps.SkipUpToDateStep.lambda $ execute $ 0(SkipUpToDateStep.java:89)在java.util.Optional.map(Optional.java:215)在org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)在org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)在org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:77)在org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)在org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)在org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)在org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)处在org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)处在org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:120)在org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)在org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)在org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)在org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)在org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)处在org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)在org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)在org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)在org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)在org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)在org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)在org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter $ 1.executeTask(EventFiringTaskExecuter.java:73)在org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter $ 1.call(EventFiringTaskExecuter.java:52)在org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter $ 1.call(EventFiringTaskExecuter.java:49)在org.gradle.internal.operations.DefaultBuildOperationExecutor $ CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)在org.gradle.internal.operations.DefaultBuildOperationExecutor $ CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)处在org.gradle.internal.operations.DefaultBuildOperationExecutor $ 1.execute(DefaultBuildOperationExecutor.java:165)在org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)在org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)在org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)在org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)在org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)在org.gradle.execution.plan.LocalTask​​NodeExecutor.execute(LocalTask​​NodeExecutor.java:43)在org.gradle.execution.taskgraph.DefaultTaskExecutionGraph $ InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)处在org.gradle.execution.taskgraph.DefaultTaskExecutionGraph $ InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)在org.gradle.execution.taskgraph.DefaultTaskExecutionGraph $ BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)处在org.gradle.execution.taskgraph.DefaultTaskExecutionGraph $ BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)处在org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker $ 1.execute(DefaultPlanExecutor.java:134)在org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker $ 1.execute(DefaultPlanExecutor.java:129)在org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker.execute(DefaultPlanExecutor.java:202)处在org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)在org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker.run(DefaultPlanExecutor.java:129)在org.gradle.internal.concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)在org.gradle.internal.concurrent.ManagedExecutorImpl $ 1.run(ManagedExecutorImpl.java:46)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)在org.gradle.internal.concurrent.ThreadFactoryImpl $ ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)在java.lang.Thread.run(Thread.java:748)

请通过上面的代码并登录,然后告诉我这出了什么问题。

android android-studio android-manifest alarmmanager
1个回答
0
投票

您有重复的AlarmReceiver接收者标签。删除一个并尝试重新构建

© www.soinside.com 2019 - 2024. All rights reserved.