Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Gradle fails on manifest merging for "targetApi"

My project contains activity declarations in the manifest that use the tools:targetApi attribute to ignore some warnings. Specifically:

    <activity
        android:name=".activities.ProtocolActivity"
        android:label="@string/title_activity_protocols"
        android:parentActivityName=".activities.InformationActivity"
        tools:targetApi="jelly_bean">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".activities.InformationActivity" />
    </activity>

Out of the blue, however, for instance after switching branches, I get the following compilation error:

Error:/home/paul/git/ally-v2-app/app/src/main/AndroidManifest.xml:67:9-80:20: Error: Invalid instruction 'targetApi', valid instructions are : REMOVE,REPLACE,STRICT
...
Error:java.lang.IllegalArgumentException: No enum constant com.android.manifmerger.AttributeOperationType.TARGETAPI

I'm using the following:

  • Gradle 2.10
  • Gradle plugin 2.0.0-beta6
  • Android Studio 2.0 beta 6
  • Both on an Ubuntu 15.10 machine and a Windows 10 machine

It seems I can get things working again by clearing the cache and restarting Android Studio, or removing the attributes, building, then adding them again.

like image 552
Paul Lammertsma Avatar asked Mar 07 '16 13:03

Paul Lammertsma


2 Answers

Replacing it by

tools:ignore="UnusedAttribute"

also fixes the lint issue.

like image 152
Tobias Avatar answered Nov 08 '22 09:11

Tobias


Remove the targetApi tag:

tools:targetApi="jelly_bean"
like image 23
Toktogul Alatoo Avatar answered Nov 08 '22 09:11

Toktogul Alatoo