2012-12-13 11 views
18

Mam projekt aplikacji na Androida, który nagle przestał działać. Najwyraźniej nie ma błędów, ale gdy próbuję uruchomić, mam to:Android Eclipse Błąd podczas wykonywania aapt: kod powrotu 139

Błąd wykonywania AAPT: kod powrotu 139

Próbowałem oczyścić projektu i jego projektu biblioteki zależnej, wznowiona Eclipse , zaktualizowane do najnowszych wersji ADT i SDK itp., ale wszystko zawiedzie. Mam też ten drugi błąd czasami (bez zmieniania czegokolwiek):

Błąd generowania ostatecznego Archive: java.io.FileNotFoundException: .../bin/resources.ap_ nie istnieje

I Jestem kompletnie zagubiony.

WIĘCEJ INFO

Spędziłem godziny rozmontować i zmontować wszystko kawałek po kawałku, iw końcu znalazłem co powoduje te błędy, ale ja nadal nie rozumiem nic lepszego ... miałem takiego zasobu :

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

Usunąłem go i wszystko działało ponownie ... Oczywiście plik zasobów nie zawierał żadnego błędu. Pół dnia za darmo, ten Eclipse doprowadza mnie do szału 8-/Czy jestem jedyny?

+1

Ten sam błąd wystąpił po zadeklarowaniu identyfikatora w stylu. Czy musi być coś związanego z zasobami ID? – Matthias

+0

Po prostu dostałem ten sam błąd i spędziłem sporo czasu, śledząc go. Dla mnie problem dotyczy pliku com.google.android.gms.maps.MapView i przypisanego do niego identyfikatora. Nadanie "mapy" działa, ale "mapa" nie. Żaden identyfikator nie jest używany nigdzie indziej w tym konkretnym układzie, ale oba są używane w innych układach. Trwa proces zamiany starej klasy MapView na nową (wszystkie stare instancje to "widok mapy" dla identyfikatora i robię nowe "mapy", aby śledzić). To musi być jakiś dziwny błąd konfliktu ID? –

+0

Wygląda na to, że mój błąd występuje, gdy nie mam gdzieś widoku z identyfikatorem "widok mapy". Zgłaszam błąd: http://code.google.com/p/android/issues/detail?id=43100 –

Odpowiedz

37

prostu miał ten sam problem, a problem był taki, że miał plik menu w folderze menu, który miał android:title="@string/..", który nie istniał w moim pliku tekstowym. Po dodaniu i wykonaniu Project > Clean problem zniknął.

+1

Potwierdzono. Po prostu miałem tę samą katastrofę. Użyłem "@ string/missing_string" w menu XML. – WindRider

+4

Rzeczywiście. Wygląda na to, że wyczyściłem (nie widziałem potrzeby) automatycznie wygenerowany ciąg: ' Settings' in strings.xml. Odłożenie go rozwiązało mój problem. – ronnydw

+2

Dzięki, miał dokładnie ten sam problem i trudno go wyśledzić w większych projektach! –

5

Don Użyj tutaj @+id/... tutaj:

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

@+id/... można używać tylko w zasobach układu.

Zastosowanie @id/... i generować identyfikatory z pliku zasobów pomocy w razie potrzeby: RES/wartości/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

2

Właśnie przeniosłem projekt z dala od korzystania z Android v7 appcompat support library i napotkałem ten problem. Okazuje się, że miałem garść plików zasobów menu, które wciąż używały wersji appcompat niektórych z ich właściwości.

Kiedyś miałem to:

<?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> 

Ale potem skorygować ten problem poprzez zmianę ich do tego:

<?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> 
2

Hit ten sam problem, po godzinie albo tak bawić się kwestią było śledzone do pojedynczego cudzysłowu "", będąc w zasobach. Usunięto cytat i błąd zniknął.

Powiązane problemy