Xamarin.Android: Eroare APT0000: Eroare de recuperare a părintelui pentru element: Nu a fost găsită nicio resursă care să se potrivească cu numele dat ‘@android:style/Theme.AppCompat’ (Programare, Android, Xamarin, Xamarin.Android)

Jonathan a intrebat.

Încerc să folosesc CoordinatorLayout în aplicația mea Xamarin.Android. Am folosit o temă personalizată cu Theme.Material.Light ca părinte, care a funcționat bine înainte de a adăuga CoordinatorLayout. Când o adaug, primesc o eroare care îmi spune că trebuie să folosesc un Theme.AppCompat temă, dar imediat ce o fac, aplicația nu reușește să se construiască și îmi dă următoarea eroare:

/{project directory}/Resources/values/Styles.xml(0,0):
Error APT0000: Error retrieving parent for item:
No resource found that matches the given name 
'@android:style/Theme.AppCompat'. (APT0000) (TnpApp.Android)

Acest răspuns sugerează instalarea versiunii majore a bibliotecii de suport care corespunde SDK-ului Android pe care îl folosesc. Am încercat acest lucru (cred că am făcut totul corect), dar nu mă ajută.

Are cineva vreo idee?

Folosesc Xamarin Studio pe Mac.

UPDATE 1

Am încercat următorul cod în MainActivity.cs într-un proiect Xamarin.Android curat, iar compilarea eșuează cu aceeași eroare.

namespace ThemeTest
{
    [Activity(Label = "ThemeTest", MainLauncher = true, Icon = "@mipmap/icon", Theme = "@android:style/Theme.AppCompat.Light")]
    public class MainActivity : Activity
    {
        // ...
    }
}

UPDATE 2

Am eliminat toate folderele din /user/.local/share/Xamarin cu excepția lui Mono for Android și zips așa cum se sugerează în acest răspuns. Am închis Xamarin Studio și l-am redeschis. Am încercat să implementez aplicația, iar Xamarin a reinstalat toate pachetele, dar compilarea a eșuat cu eroarea inițială.

3 răspunsuri
Jonathan

Am reușit să rezolv această problemă prin simpla eliminare a @android:style/ din style element’s parent în fișierul Styles.xml. Deci, ceea ce arăta așa…

<style name="MyCustomTheme" parent="@android:style/Theme.AppCompat">

Acum arată așa…

<style name="MyCustomTheme" parent="Theme.AppCompat">

Sunt șocat că soluția este atât de simplă, dar funcționează. 🙂 Am preluat ideea de la acest cod.

Tony

Dezvolt în Visual Studio 2015/Xamarin și am văzut aceeași problemă. Deși încă nu înțeleg cauza sau soluția pentru această problemă, acest fir de discuție m-a îndreptat în direcția corectă, care pare să aibă mai mult de-a face cu resalvarea styles.xml (pentru mediul meu de dezvoltare) decât cu orice altceva.

Styles.xml-ul meu nu avea @android:style/ și tot am avut eroarea menționată mai sus. Așa cum am descris într-o altă soluție propusă, am adăugat

<style name="MyCustomTheme.Base" parent="Theme.AppCompat" />

înainte de <style name="MyCustomTheme" parent="Theme.AppCompat">, am salvat styles.xml și mi-am reconstruit proiectul fără erori. Apoi am eliminat

<style name="MyCustomTheme.Base" parent="Theme.AppCompat" />,

am salvat din nou styles.xml și am reconstruit proiectul fără erori. Din punct de vedere vizual, styles.xml-ul meu este neschimbat, dar eroarea a dispărut.

ezzou

Dacă ați instalat recent un pachet legat de serviciul Google Play (firebase de exemplu , dar există multe altele) , este posibil ca această instalare să fi încurcat cu CSproj și package.json (consultați istoricul de control al versiunilor pentru a vedea dacă aceste fișiere au fost modificate) și a modificat versiunea api țintă: trecând de la Api țintă 25 la Api țintă 26, de exemplu, etc.

Dacă acesta este cazul , ar trebui să abordați această problemă într-unul din cele două moduri :

  • asigurați-vă că descărcați versiunea de sdk pe care o vizați acum , pentru a face acest lucru , mergeți la TOOLS > SDK manager.

  • sau reveniți la vechea țintă , eliminând modificarea pe care pachetul a făcut-o în fișierele csproj și package.json și curățați și reconstruiți.