2015-02-23 3 views
8

Ich habe ein Problem mit Android Gradle Build. Lange Rede kurzer Sinn, ich habe 2 Aromen erstellt:Android Geschmack und Ressourcen-Dateien

productFlavors{ 
     abcDemoFree{ 
     } 

     abcDemo{ 
     } 
} 

Eeach Geschmack hat seine eigene Aktivität (Settings.java) und Layout (settings_layout.xml) für diese Tätigkeit. Von der Hauptseite wurden beide Dateien entfernt, daher sind Settings.java und settings_layout.xml nur in den Flavors vorhanden.

abcDemoFree 
    - java 
     - Settings.java 
    - res 
     - settings_layout.xml 

abcDemo 
    - java 
     - Settings.java 
    - res 
     - settings_layout.xml 

Android Studio erstellt 4 Build-Varianten:

abcDemoFreeDebug 
abcDemoFreeRelease 
abcDemoDebug 
abcDemoRelease 

Alles funktioniert schön, ich bin in der Lage apk mit Verhalten zu schaffen ich von jedem Geschmack erwarten. Problem ist, wenn ich zu einem buildVariant wechseln, zum Beispiel zu abcDemoDebug, android Studio melden Fehler von Ressourcen-Datei in einem anderen Geschmack in meinem Beispiel aus abcDemoFreeDegub/res/settings_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       xmlns:app="http://schemas.android.com/apk/res-auto" 
       xmlns:tools="http://schemas.android.com/tools" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical" 

</LinearLayout> 

Diese Linien

xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 

Fehler erzeugen: URI ist nicht registriert.

Wie Sie diese Fehler loswerden? Oder ist das normales Verhalten?

Antwort

0

Leider AndroidStudio verwendet die Ressourcen aus dem falschen Geschmack, wenn Sie wechseln. Sie müssen eine saubere und dann nach dem Wechsel der Variante zu bauen, um diese Fehler zu beseitigen.

0

Die Fehler treten auf, wenn Sie die Build-Variante nicht tatsächlich wechseln. Wenn Sie sich nur die Datei ansehen, werden die Fehler angezeigt, aber wenn Sie die Build-Konfiguration und die Neuerstellung tatsächlich ändern, ist alles in Ordnung. Vergewissern Sie sich außerdem, dass Sie nicht spezifische Implementierung tat oder für Aromen Kompilieren wie:

myFlavorImplementation android.libraries.forexample

als dann wäre es die notwendigen Bibliotheken zur Reinigung der Warnung fehlen.

enter image description here

Verwenden Sie die Build-Variante schieben, um baut das andere Debug zu ändern, und es sollte automatisch wieder aufbauen, aber wenn nicht, nicht nur sich selbst wieder aufzubauen. Stellen Sie außerdem sicher, dass Sie sich die tatsächlichen Dateien und nicht die generierten Dateien ansehen, wenn Sie Annotations-Tools oder Datenbindung mit Layout-Wrappern verwenden und das android-Tag im Layout und im ersten untergeordneten Tag hat, dass diese rot sein können sowie bei der Erzeugung der endgültigen Layoutdatei, die zu paketieren ist.