16

For some reason, even though my app name appeared correctly next to the app icon, when I looked for the app under settings->app, the name appeared to be "libcocos2dx" instead of the correct name.

So I added the following line in my AndroidManifest.xml:

    android:label="@string/app_name"

But it caused the error:

app/AndroidManifest.xml:12:6 Error:
    Attribute application@label value=(@string/app_name) from AndroidManifest.xml:12:6
    is also present at proj.android-studio:libcocos2dx:unspecified:13:9 value=(libcocos2dx)
    Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:11:5 to override

How can I fix the above error ? I have no idea where libcocos2dx is specified as the name. I am using cocos2d-x v3.7, which uses libcocos2dx.

EDIT: I can see the suggestion to use "tools:replace" , but I feel like I'm masking the problem instead of fixing it. Is there a better way to fix the root cause ?

EDIT: Does anyone know how to add tools:replace ? This might seem obvious to you, but when I add it, I get the error:

the prefix "tools" for attribute "tools:replace" associated with an element type "application" is not bound

Rahul Iyer
  • 19,924
  • 21
  • 96
  • 190
  • add `tools:replace="android:label` in your `Application` Tag in your `Androidmanifest`. – Shvet Aug 14 '15 at 04:40
  • Yes I saw that, but why is my app being named libcocos2dx ? How do I fix the original error. I feel like I'm masking the error instead of fixing it. – Rahul Iyer Aug 14 '15 at 04:43
  • Its telling you that that attribute has already been used by libcocos and you have to replace it to override it. Just read the error carefully, its all there – ElefantPhace Aug 14 '15 at 04:45
  • can you check your `@string/` where it is pointing you? – Shvet Aug 14 '15 at 04:45
  • @ElefantPhace Yes - I see it. But I don't know how to fix it. I'm new to Android, and don't know these things. – Rahul Iyer Aug 14 '15 at 05:26
  • @Shvet I don't know what you mean. It clearly says app_name – Rahul Iyer Aug 14 '15 at 05:26

2 Answers2

40

Had to add to the manifest header:

xmlns:tools="http://schemas.android.com/tools"

For example:

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

Then in the element:

'tools:replace="android:label"'
Rahul Iyer
  • 19,924
  • 21
  • 96
  • 190
2

The answer from Kaizer Sozay in this thread helped me a lot while I was looking to set android:allowBackup in my NativeScript project.

I ended up with the complete file like this:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
    <application tools:replace="android:allowBackup" android:allowBackup="true">
    </application>
</manifest>
beeman
  • 574
  • 5
  • 9