Fixed
Status Update
Comments
uc...@google.com <uc...@google.com>
ia...@arctouch.com <ia...@arctouch.com> #2
Actually, there was an error message, but "run" just didn't work, although I could autocomplete to the value "merge-only-attributes", so it seemed legitimate.
xa...@google.com <xa...@google.com>
je...@google.com <je...@google.com> #3
do you have an example project that reproduces the error ?
ia...@arctouch.com <ia...@arctouch.com> #4
Here is a project where you can see the error.
The problem is that, while there is no error indicated on the project, when I try to run using the IDE run button (or ctrl-r), nothing happens (gradle build doesn't even start) and I see this exception on "IDE Fatal Errors" (the red exclamation mark icon in the bottom right in the status bar):
java.lang.IllegalArgumentException: No enum constant com.android.manifmerger.NodeOperationType.MERGE-ONLY-ATTRIBUTES
at java.lang.Enum.valueOf(Enum.java:238)
at com.android.manifmerger.NodeOperationType.valueOf(NodeOperationType.java:34)
at com.android.manifmerger.XmlElement.<init>(XmlElement.java:108)
at com.android.manifmerger.XmlElement.initMergeableChildren(XmlElement.java:893)
at com.android.manifmerger.XmlElement.<init>(XmlElement.java:170)
at com.android.manifmerger.XmlElement.initMergeableChildren(XmlElement.java:893)
at com.android.manifmerger.XmlElement.<init>(XmlElement.java:170)
at com.android.manifmerger.XmlDocument.getRootNode(XmlDocument.java:247)
at com.android.manifmerger.PlaceholderHandler.visit(PlaceholderHandler.java:82)
at com.android.manifmerger.ManifestMerger2.performPlaceHolderSubstitution(ManifestMerger2.java:1068)
at com.android.manifmerger.ManifestMerger2.load(ManifestMerger2.java:1027)
at com.android.manifmerger.ManifestMerger2.merge(ManifestMerger2.java:139)
at com.android.manifmerger.ManifestMerger2.access$600(ManifestMerger2.java:61)
at com.android.manifmerger.ManifestMerger2$Invoker.merge(ManifestMerger2.java:1737)
at com.android.tools.idea.model.ManifestInfo.getMergedManifest(ManifestInfo.java:254)
at com.android.tools.idea.model.ManifestInfo$ManifestFile.parseManifest(ManifestInfo.java:314)
at com.android.tools.idea.model.ManifestInfo$ManifestFile.refresh(ManifestInfo.java:379)
at com.android.tools.idea.model.MergedManifest.syncWithReadPermission(MergedManifest.java:410)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:925)
at com.android.tools.idea.model.MergedManifest.sync(MergedManifest.java:372)
at com.android.tools.idea.model.MergedManifest.getActivities(MergedManifest.java:550)
at com.android.tools.idea.run.activity.DefaultActivityLocator.lambda$computeDefaultActivity$0(DefaultActivityLocator.java:84)
at com.intellij.openapi.project.DumbService.lambda$runReadActionInSmartMode$0(DumbService.java:79)
at com.intellij.openapi.project.DumbService.runReadActionInSmartMode(DumbService.java:110)
at com.intellij.openapi.project.DumbService.runReadActionInSmartMode(DumbService.java:79)
at com.android.tools.idea.run.activity.DefaultActivityLocator.computeDefaultActivity(DefaultActivityLocator.java:83)
at com.android.tools.idea.run.activity.DefaultActivityLocator.validate(DefaultActivityLocator.java:70)
at com.android.tools.idea.run.editor.DefaultActivityLaunch$State.checkConfiguration(DefaultActivityLaunch.java:49)
at com.android.tools.idea.run.AndroidAppRunConfigurationBase.checkConfiguration(AndroidAppRunConfigurationBase.java:113)
at com.android.tools.idea.run.AndroidRunConfigurationBase.validate(AndroidRunConfigurationBase.java:190)
at com.android.tools.idea.run.AndroidRunConfigurationBase.checkConfiguration(AndroidRunConfigurationBase.java:123)
at com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl.checkSettings(RunnerAndConfigurationSettingsImpl.kt:321)
at com.intellij.execution.impl.RunManagerImpl$Companion.canRunConfiguration(RunManagerImpl.kt:67)
at com.intellij.execution.impl.RunManagerImpl$Companion.canRunConfiguration(RunManagerImpl.kt:61)
at com.intellij.execution.impl.RunManagerImpl.canRunConfiguration(RunManagerImpl.kt)
at com.intellij.execution.ProgramRunnerUtil.executeConfigurationAsync(ProgramRunnerUtil.java:65)
at com.intellij.execution.ProgramRunnerUtil.executeConfiguration(ProgramRunnerUtil.java:43)
at com.intellij.execution.impl.ExecutionManagerImpl.start(ExecutionManagerImpl.java:94)
at com.intellij.execution.impl.ExecutionManagerImpl.access$300(ExecutionManagerImpl.java:43)
at com.intellij.execution.impl.ExecutionManagerImpl$3.run(ExecutionManagerImpl.java:423)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:232)
at com.intellij.util.Alarm$Request.runSafely(Alarm.java:405)
at com.intellij.util.Alarm$Request.access$700(Alarm.java:330)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:371)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:447)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:431)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:415)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:817)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:758)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:394)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
But you don't even need my sample project for this. I just created a new project with a basic activity, ran it once to make sure it works then added this attribute to the main activity
in the AndroidManifest.xml:
tools:node="merge-only-attributes"
To be extra clear, this is the main activity node on the manifest that causes the error:
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar"
tools:node="merge-only-attributes">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
Removing the "merge-only-attributes" flag makes the error go away. In my original problem, I traded it for "<intent-filter tools:node="removeAll"/>" inside the activity node.
My problem with this is that the IDE even allows me to autocomplete the "merge-only-attributes" flag. If it no longer exists, then it should be removed from the IDE.
The problem is that, while there is no error indicated on the project, when I try to run using the IDE run button (or ctrl-r), nothing happens (gradle build doesn't even start) and I see this exception on "IDE Fatal Errors" (the red exclamation mark icon in the bottom right in the status bar):
java.lang.IllegalArgumentException: No enum constant com.android.manifmerger.NodeOperationType.MERGE-ONLY-ATTRIBUTES
at java.lang.Enum.valueOf(Enum.java:238)
at com.android.manifmerger.NodeOperationType.valueOf(NodeOperationType.java:34)
at com.android.manifmerger.XmlElement.<init>(XmlElement.java:108)
at com.android.manifmerger.XmlElement.initMergeableChildren(XmlElement.java:893)
at com.android.manifmerger.XmlElement.<init>(XmlElement.java:170)
at com.android.manifmerger.XmlElement.initMergeableChildren(XmlElement.java:893)
at com.android.manifmerger.XmlElement.<init>(XmlElement.java:170)
at com.android.manifmerger.XmlDocument.getRootNode(XmlDocument.java:247)
at com.android.manifmerger.PlaceholderHandler.visit(PlaceholderHandler.java:82)
at com.android.manifmerger.ManifestMerger2.performPlaceHolderSubstitution(ManifestMerger2.java:1068)
at com.android.manifmerger.ManifestMerger2.load(ManifestMerger2.java:1027)
at com.android.manifmerger.ManifestMerger2.merge(ManifestMerger2.java:139)
at com.android.manifmerger.ManifestMerger2.access$600(ManifestMerger2.java:61)
at com.android.manifmerger.ManifestMerger2$Invoker.merge(ManifestMerger2.java:1737)
at com.android.tools.idea.model.ManifestInfo.getMergedManifest(ManifestInfo.java:254)
at com.android.tools.idea.model.ManifestInfo$ManifestFile.parseManifest(ManifestInfo.java:314)
at com.android.tools.idea.model.ManifestInfo$ManifestFile.refresh(ManifestInfo.java:379)
at com.android.tools.idea.model.MergedManifest.syncWithReadPermission(MergedManifest.java:410)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:925)
at com.android.tools.idea.model.MergedManifest.sync(MergedManifest.java:372)
at com.android.tools.idea.model.MergedManifest.getActivities(MergedManifest.java:550)
at com.android.tools.idea.run.activity.DefaultActivityLocator.lambda$computeDefaultActivity$0(DefaultActivityLocator.java:84)
at com.intellij.openapi.project.DumbService.lambda$runReadActionInSmartMode$0(DumbService.java:79)
at com.intellij.openapi.project.DumbService.runReadActionInSmartMode(DumbService.java:110)
at com.intellij.openapi.project.DumbService.runReadActionInSmartMode(DumbService.java:79)
at com.android.tools.idea.run.activity.DefaultActivityLocator.computeDefaultActivity(DefaultActivityLocator.java:83)
at com.android.tools.idea.run.activity.DefaultActivityLocator.validate(DefaultActivityLocator.java:70)
at com.android.tools.idea.run.editor.DefaultActivityLaunch$State.checkConfiguration(DefaultActivityLaunch.java:49)
at com.android.tools.idea.run.AndroidAppRunConfigurationBase.checkConfiguration(AndroidAppRunConfigurationBase.java:113)
at com.android.tools.idea.run.AndroidRunConfigurationBase.validate(AndroidRunConfigurationBase.java:190)
at com.android.tools.idea.run.AndroidRunConfigurationBase.checkConfiguration(AndroidRunConfigurationBase.java:123)
at com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl.checkSettings(RunnerAndConfigurationSettingsImpl.kt:321)
at com.intellij.execution.impl.RunManagerImpl$Companion.canRunConfiguration(RunManagerImpl.kt:67)
at com.intellij.execution.impl.RunManagerImpl$Companion.canRunConfiguration(RunManagerImpl.kt:61)
at com.intellij.execution.impl.RunManagerImpl.canRunConfiguration(RunManagerImpl.kt)
at com.intellij.execution.ProgramRunnerUtil.executeConfigurationAsync(ProgramRunnerUtil.java:65)
at com.intellij.execution.ProgramRunnerUtil.executeConfiguration(ProgramRunnerUtil.java:43)
at com.intellij.execution.impl.ExecutionManagerImpl.start(ExecutionManagerImpl.java:94)
at com.intellij.execution.impl.ExecutionManagerImpl.access$300(ExecutionManagerImpl.java:43)
at com.intellij.execution.impl.ExecutionManagerImpl$3.run(ExecutionManagerImpl.java:423)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:232)
at com.intellij.util.Alarm$Request.runSafely(Alarm.java:405)
at com.intellij.util.Alarm$Request.access$700(Alarm.java:330)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:371)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:447)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:431)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:415)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:817)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:758)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:394)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
But you don't even need my sample project for this. I just created a new project with a basic activity, ran it once to make sure it works then added this attribute to the main activity
in the AndroidManifest.xml:
tools:node="merge-only-attributes"
To be extra clear, this is the main activity node on the manifest that causes the error:
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar"
tools:node="merge-only-attributes">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
Removing the "merge-only-attributes" flag makes the error go away. In my original problem, I traded it for "<intent-filter tools:node="removeAll"/>" inside the activity node.
My problem with this is that the IDE even allows me to autocomplete the "merge-only-attributes" flag. If it no longer exists, then it should be removed from the IDE.
je...@google.com <je...@google.com>
sp...@google.com <sp...@google.com> #5
I'm still able to reproduce on AS Electric Eel Canary 8.
It should be "mergeOnlyAttributes", not "merge-only-attributes".
This is an IDE bug - autocomplete should suggest "mergeOnlyAttributes".
an...@google.com <an...@google.com>
an...@google.com <an...@google.com> #6
I've submitted a fix which will be available in the next canary build.
an...@google.com <an...@google.com> #7
Thank you for your patience while our engineering team worked to resolve this issue. A fix for this issue is now available in:
- Android Studio Ladybug Feature Drop | 2024.2.2 Canary 1
- Android Gradle Plugin 8.8.0-alpha01
We encourage you to try the latest update.
If you notice further issues or have questions, please file a new bug report.
Thank you for taking the time to submit feedback — we really appreciate it!
[Deleted User] <[Deleted User]> #8
Comment has been deleted.
[Deleted User] <[Deleted User]> #9
Comment has been deleted.
Description
AI-182.5107.16.33.5264788, JRE 1.8.0_152-release-1248-b01x64 JetBrains s.r.o, OS Mac OS X(x86_64) v10.13.6 unknown, screens 1280x800, 1920x1080; Retina
Android Gradle Plugin: 3.3.1
Gradle: 4.10.2
NDK: from local.properties: (not specified); latest from SDK: (not found);
LLDB: pinned revision 3.1 not found; latest from SDK: (package not found);
CMake: from local.properties: (not specified); latest from SDK: (not found); from PATH: 3.12.2;
Source: user_sentiment_feedback
IMPORTANT: Please read