2015-02-23 16 views
8

Ho un problema con la build gradle di Android. Per farla breve, ho creato 2 versioni:File di sapore e risorse Android

productFlavors{ 
     abcDemoFree{ 
     } 

     abcDemo{ 
     } 
} 

sapore Eeach ha la propria attività (Settings.java) e il layout (settings_layout.xml) per questa attività. Da entrambi i file sono stati rimossi, quindi Settings.java e settings_layout.xml esistono solo negli aromi.

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

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

Android Studio creato 4 varianti di build:

abcDemoFreeDebug 
abcDemoFreeRelease 
abcDemoDebug 
abcDemoRelease 

Tutto funziona bello, io sono in grado di creare apk con il comportamento mi aspetto da ogni sapore. Il problema è quando passo a uno buildVariant, ad esempio per abcDemoDebug, Android Studio riporta bug da file di risorse in un altro sapore, a mio esempio da 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> 

Queste linee

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" 

generare bug: URI non è registrato.

Come sbarazzarsi di questi errori? O forse questo è un comportamento normale?

risposta

0

Sfortunatamente AndroidStudio utilizza le risorse dall'aroma sbagliato quando si passa. Devi fare una pulizia e poi costruire dopo aver cambiato la variante per far sparire questi errori.

0

Gli errori arrivano se in realtà non si cambia la variante di costruzione. Se guardi solo il file mostrerà gli errori, ma se in effetti cambi la configurazione e la ricostruzione, tutto andrà bene. Inoltre conferma che non hai fatto Attuazione specifico o compilare per sapori come:

myFlavorImplementation android.libraries.forexample

come allora sarebbe mancare le librerie necessarie per la pulizia l'avviso.

enter image description here

Utilizzare la variante di compilazione Estrarre per passare all'altra build di debug e dovrebbe automaticamente ricostruire, ma se non, basta fare una ricostruzione da soli. Assicurati anche di guardare i file effettivi e non i file generati come a volte se usi gli strumenti di annotazione o l'associazione dati con i wrapper di layout e hai il tag Android nel layout e il primo tag secondario può far sì che siano rossi anche sulla generazione del file di layout finale da confezionare.

Problemi correlati