Manifest merger can't find packageName placeholder

3,689 views
Skip to first unread message

Mehmet Arikan

unread,
Jun 16, 2014, 7:58:33 AM6/16/14
to adt...@googlegroups.com
Hi all,

I'm trying to use the placeholder feature introduced in the new manifest merger. However, manifest merger complains about the placeholder when i try to build for release buildType. It builds normally if I build for debug. 

I'm using gradle plugin 0.10.+, wrapper version is 1.11 and I disabled old manifest merger in gradle script. In my Manifest placeholders are used as follows

    <permission android:name="${packageName}.permission.C2D_MESSAGE"/>
   <uses-permission android:name="${packageName}.permission.C2D_MESSAGE"/>

and when I try to build with ./gradlew assembleRelease I get the following error:

    :%MODULE_NAME%:processReleaseManifest
    %PROJECT_PATH%/src/main/AndroidManifest.xml:37:17 Error:
    Attribute permission#${packageName}.permission.C2D_MESSAGE@name at AndroidManifest.xml:37:17 requires a placeholder substitution but no value for <packageName> is provided.
    %PROJECT_PATH%/src/main/AndroidManifest.xml:38:22 Error:
    Attribute uses-permission#${packageName}.permission.C2D_MESSAGE@name at AndroidManifest.xml:38:22 requires a placeholder substitution but no value for <packageName> is provided.
    :%MODULE_NAME%:processReleaseManifest FAILED

and this is the stacktrace for the exception: 

    14:55:19.831 [ERROR] [org.gradle.BuildExceptionReporter]
    14:55:19.832 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception.
    14:55:19.832 [ERROR] [org.gradle.BuildExceptionReporter]
    14:55:19.832 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
    14:55:19.832 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':%MODULE_NAME%:processReleaseManifest'.
    14:55:19.833 [ERROR] [org.gradle.BuildExceptionReporter] > Manifest merger failed with multiple errors, see logs
    14:55:19.833 [ERROR] [org.gradle.BuildExceptionReporter]
    14:55:19.833 [ERROR] [org.gradle.BuildExceptionReporter] * Exception is:
    14:55:19.834 [ERROR] [org.gradle.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':%MODULE_NAME%:processReleaseManifest'.
    14:55:19.834 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
    14:55:19.835 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    14:55:19.835 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
    14:55:19.835 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
    14:55:19.836 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    14:55:19.836 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
    14:55:19.836 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    14:55:19.837 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
    14:55:19.837 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    14:55:19.838 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:289)
    14:55:19.838 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
    14:55:19.838 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
    14:55:19.839 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
    14:55:19.839 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23)
    14:55:19.839 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86)
    14:55:19.840 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
    14:55:19.840 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    14:55:19.840 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
    14:55:19.840 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
    14:55:19.841 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
    14:55:19.841 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    14:55:19.841 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
    14:55:19.842 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166)
    14:55:19.842 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
    14:55:19.842 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
    14:55:19.842 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
    14:55:19.843 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
    14:55:19.843 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
    14:55:19.843 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
    14:55:19.844 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
    14:55:19.844 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
    14:55:19.844 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
    14:55:19.844 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
    14:55:19.845 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
    14:55:19.845 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
    14:55:19.845 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
    14:55:19.845 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
    14:55:19.846 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
    14:55:19.846 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.Main.doAction(Main.java:46)
    14:55:19.846 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
    14:55:19.846 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.Main.main(Main.java:37)
    14:55:19.847 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
    14:55:19.847 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
    14:55:19.848 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
    14:55:19.848 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30)
    14:55:19.848 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:127)
    14:55:19.848 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:58)
    14:55:19.848 [ERROR] [org.gradle.BuildExceptionReporter] Caused by: java.lang.RuntimeException: Manifest merger failed with multiple errors, see logs
    14:55:19.849 [ERROR] [org.gradle.BuildExceptionReporter] at com.android.builder.AndroidBuilder.processManifest2(AndroidBuilder.java:430)
    14:55:19.849 [ERROR] [org.gradle.BuildExceptionReporter] at com.android.builder.AndroidBuilder$processManifest2.call(Unknown Source)
    14:55:19.849 [ERROR] [org.gradle.BuildExceptionReporter] at com.android.build.gradle.tasks.ProcessAppManifest2.doFullTaskAction(ProcessAppManifest2.groovy:97)
    14:55:19.849 [ERROR] [org.gradle.BuildExceptionReporter] at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.groovy:64)
    14:55:19.849 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
    14:55:19.849 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:236)
    14:55:19.849 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212)
    14:55:19.850 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:223)
    14:55:19.850 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201)
    14:55:19.850 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:533)
    14:55:19.850 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:516)
    14:55:19.850 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
    14:55:19.850 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
    14:55:19.850 [ERROR] [org.gradle.BuildExceptionReporter] ... 46 more
    14:55:19.850 [ERROR] [org.gradle.BuildExceptionReporter]
    14:55:19.851 [LIFECYCLE] [org.gradle.BuildResultLogger]
    14:55:19.851 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED

Anton Rutkevich

unread,
Jun 19, 2014, 3:30:36 PM6/19/14
to adt...@googlegroups.com
Same for me, except for assembleDebug fails too. 

Works for application projects only with deprecated 

    defaultConfig {
        packageName = "com.mycompany.myapp"
    }

in build.gradle. 

But with library projects it works fine.

Jerome Dochez

unread,
Jun 19, 2014, 5:25:03 PM6/19/14
to adt...@googlegroups.com
Have you tried using applicationId in your build.gradle :

    defaultConfig {
        applicationId = "com.mycompany.myapp"
    }

does it change anything ?

I tried to reproduce it on my end with no luck, if possible, consider sharing a small project showing the issue.

thanks, jerome
--
You received this message because you are subscribed to the Google Groups "adt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adt-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Anton Rutkevich

unread,
Jun 21, 2014, 7:14:26 AM6/21/14
to adt...@googlegroups.com
 
applicationId = "com.mycompany.myapp"
 
helps, but the main idea of the ${packageName} placeholder, as I see it, is that it should know the package without any additional parameters in build.gradle.

Here's the sample project, where the issue can be reproduced. 
./gradlew clean assembleDebug -i

gives

:app:processDebugManifest
Executing task ':app:processDebugManifest' (up-to-date check took 0.012 secs) due to:
  Value of input property 'packageOverride' has changed for task ':app:processDebugManifest'
All input files are considered out-of-date for incremental task ':app:processDebugManifest'.
Merging main manifest /Users/username/Desktop/no-placeholder/app/src/main/AndroidManifest.xml
Merging result:ERROR
/Users/username/Desktop/no-placeholder/app/src/main/AndroidManifest.xml:14:13 Error:
Attribute activity#${packageName}.MainActivity@name at AndroidManifest.xml:14:13 requires a placeholder substitution but no value for <packageName> is provided.
:app:processDebugManifest FAILED
:app:processDebugManifest (Thread[main,5,main]) completed. Took 0.112 secs.

Hope that helps!
To unsubscribe from this group and stop receiving emails from it, send an email to adt-dev+u...@googlegroups.com.
placeholder-bug.zip

Anton Rutkevich

unread,
Jun 30, 2014, 8:00:24 AM6/30/14
to adt...@googlegroups.com
Any updates?

Jerome Dochez

unread,
Jun 30, 2014, 3:50:33 PM6/30/14
to adt...@googlegroups.com
I am not seeing a sample project I can use to reproduce the
​issue
 
​. Did you mean to attach one ?

Thanks, jerome​
To unsubscribe from this group and stop receiving emails from it, send an email to adt-dev+unsubscribe@googlegroups.com.

Anton Rutkevich

unread,
Jul 2, 2014, 2:39:04 AM7/2/14
to adt...@googlegroups.com
The project is actually attached to my June 21 message.
Here's an extra link to Google Drive

Jerome Dochez

unread,
Jul 2, 2014, 1:56:19 PM7/2/14
to adt...@googlegroups.com
Thanks for the repro case, it helped a lot.
I have a fix, will be part of the next release train :

jerome
Reply all
Reply to author
Forward
0 new messages