Patrick
Patrick

Reputation: 3759

Android Eclipse Error executing aapt: return code 139

I have an Android application project that suddenly stopped to work. There is apparently no error, but when I try to launch, I get this:

Error executing aapt: return code 139

I tried to clean the project and its dependent library project, restarted Eclipse, updated to latest ADT and SDK versions, etc. but all failed. I also have this other error sometimes (without changing anything):

Error generating final archive: java.io.FileNotFoundException: .../bin/resources.ap_ does not exist

I'm completely lost.

MORE INFO

I spent hours to disassemble and reassemble everything piece by piece, and finally found what causes these errors, though I still don't understand anything better... I had a resource like this:

<resources>
<integer-array name="titi">
<item>@+id/toto</item>
</integer-array>
</resources>

I removed it and everything worked again... Of course the resource file had no error at all. Half a day lost for nothing, this Eclipse is driving me mad 8-/ Am I the only one?

Upvotes: 19

Views: 16291

Answers (5)

arober11
arober11

Reputation: 2019

Hit the same issue, after an hour or so of playing the issue was tracked down to a single quote " ' ", being present in a resource . Removed the quote and the error went away.

Upvotes: 2

Charles Madere
Charles Madere

Reputation: 6832

I just moved a project away from using the Android v7 appcompat support library and encountered this problem. Turns out that I had a bunch of menu resource files that were still using the appcompat version of some of their properties.

I used to have this:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:compat="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/conversations_activity_menu_contacts"
        android:title="@string/contacts"
        compat:showAsAction="ifRoom|withText" />
</menu>

But then corrected the problem by changing them to this:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/conversations_activity_menu_contacts"
        android:showAsAction="ifRoom|withText"
        android:title="@string/contacts" />
</menu>

Upvotes: 2

Nima
Nima

Reputation: 6573

Just had the same issue and the problem was that I had a menu file inside the menu folder which had an android:title="@string/.." that did not exist in my strings file. After adding it and doing a Project > Clean the problem is gone.

Upvotes: 38

Sensei
Sensei

Reputation: 396

Don't use @+id/... here:

<?xml version="1.0" encoding="utf-8"?>    
<resources>
    <integer-array name="titi">
    <Item>@+id/Toto</item>
    </integer-array>
</resources>

@+id/... can only be used in layout resources.

Use @id/... and generate ids with help resource file if needed: res/values/ids.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item type="id" name="toto" />
</resources>

http://developer.android.com/guide/topics/resources/more-resources.html#Id

Upvotes: 5

Anup Cowkur
Anup Cowkur

Reputation: 20563

AAPT errors are sometimes caused by insufficient memory for eclipse to run in. See:

How to diagnose "Error executing aapt" error in Eclipse?

For the second part of your problem, see this:

Android Packaging Problem: resources.ap_ does not exist

Upvotes: 0

Related Questions