Error Details
AGPBI: {"kind":"error","text":"error: \u003citem\u003e inner element must either be a resource reference or empty.","sources":[{"file":"...\\app\\src\\main\\res\\values\\ids.xml","position":{"startLine":2,"startColumn":4,"startOffset":57,"endColumn":61,"endOffset":114}}],"original":"","tool":"AAPT"}
:app:mergeDebugResources
Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
:app:mergeDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details.
Resource File
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="tv_deviceName" type="id">tv_deviceName</item>
</resources>
Build Environment
- Android Studio 3.1.4
- minSdkVersion = 21
- targetSdkVersion = 28
- compileSdkVersion = 28
- buildToolsVersion = "28.0.2"
When declaring id in resources, the body should be empty
<item
type="id"
name="id_name" />
For more info please have a look on below link
https://developer.android.com/guide/topics/resources/more-resources#Id
I had a similar issue after upgrading to Android Studio 3.2.1
The error was pointing to this item in ids.xml file
<item name="mnuActivate" type="id">Activation</item>
As mentioned by the user Sangeet Suresh, I changed it to
<item name="mnuActivate" type="id" />
That fixed the issue.
On your Resource File remove the closing tag plus the Body i.e Remove "tv_deviceName"
and let your resource file be like:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="tv_deviceName" type="id"/>
</resources>
To all others who are still scratching their head to get the solution for this is create ids.xml inside src/main/res/values
Now Android Studio will be giving you error for explicit values and if those values are coming from some library you are using then you can't make a change in the intermediate file so instead change here and while merging your code Android studio takes care of it.