2016-06-22 7 views
2

Hier ist die grobe Idee meiner Dateien. Ich habe eine Menge Code geerbt, der die public.xml-Datei verwendet, um ids zu themes zuzuordnen. Dieser Code führt den Fehler:AndroidManifest.xml verwenden Integer-IDs in der public.xml für Themen gespeichert

Error:(40, 24) Integer types not allowed (at 'theme' with value '0x7f09007a')

Allerdings, wenn ich die android:theme="0x7f09007a" mit android:theme="@style/myCoolTheme alles funktioniert ersetzen. Ich muss in der Lage sein, diese ids zu verwenden, da so viel mehr des Codes, den ich geerbt habe, sie benutzt. Bin ich etwas fehlt die Manifest-Datei in public.xml? die ID-Mapping

app/src/main/res/AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest ... 
    <application 
     android:theme="0x7f09007a" 
     ... 
    </application> 
</manifest> 

app/src/main/res/Werte/verwenden, um public.xml

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
     <public type="style" name="myCoolTheme" id="0x7f09007a" /> 
     ... 
    </resources> 

app/src/main/res/Werte/style.xml

<resources> 
    <style name="AppTheme" 
     ... 
    </style> 
    <style name="myCoolTheme" parent="@style/AppTheme" /> 
</resources> 

Antwort

1

zu this post Bezug, glaube ich, die Verwendung von @style/myCoolTheme korrekt ist, weil Sie verwenden die name="myCoolTheme" der public.xml.

Der einzige Zweck des Attributs id="" besteht darin, diesen ganzzahligen Wert in R.java zusammenzuführen, auf den die anderen XML-Dateien nicht verweisen.

0

Haben Sie versucht, nur den Namen der Ressource in der XML umzubenennen, um die gleiche Sache zu sein? Ist es notwendig, dass der Stil "myCoolTheme" genannt wird? Wenn nicht, kann dies den Trick tun.

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
     <public type="style" name="0x7f09007a" id="0x7f09007a" /> 
     ... 
    </resources 

Wenn es Umbenennung kein Problem ist, können Sie nur die in den folgenden verwenden AndroidManifest.xml

android:theme="@style/0x7f09007a"a