2015-02-23 23 views
8

Android gradle build ile ilgili bir sorunum var. Uzun lafın kısası, ben 2 tatlar oluşturduk:Android aroma ve kaynak dosyaları

productFlavors{ 
     abcDemoFree{ 
     } 

     abcDemo{ 
     } 
} 

Eeach lezzet bu faaliyet için kendi Aktivite (Settings.java) ve düzenini (settings_layout.xml) sahiptir. Her iki dosya da kaldırıldı, böylece Settings.java ve settings_layout.xml yalnızca tatlarda var.

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

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

Android Studio 4 inşa varyantları yarattı:

abcDemoFreeDebug 
abcDemoFreeRelease 
abcDemoDebug 
abcDemoRelease 

Her şey güzel çalışıyor, ben her lezzet gelen bekliyorum davranışı ile apk oluşturmak mümkün. Ben abcDemoDebug için örneğin, bir buildVariant geçtiğinizde Sorun, android stüdyo 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> 

benim örnekte, başka lezzet Bu satırlar kaynaklar dosyasından hata raporları

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" 

hata oluştur: URI kayıtlı değil.

Bu hatalardan nasıl kurtulur? Ya da belki bu normal davranış mı?

cevap

0

Ne yazık ki AndroidStudio, geçiş yaptığınızda kaynakları yanlış aromadan kullanır. Temizlemeniz ve sonra bu hataları gidermek için varyantı değiştirdikten sonra oluşturmanız gerekir.

0

Yapı değişkeni aslında değiştirmiyorsanız hatalar gelir. Eğer sadece dosyaya bakarsanız, hataları gösterecektir, ancak derleme yapılandırmasını değiştirip yeniden oluşturursanız iyi olacaksınız.

myFlavorImplementation olarak o zaman temizlemek için gerekli kütüphaneleri uyarı eksik olur

android.libraries.forexample: Ayrıca belirli Uygulama yapmak ya da benzeri tatlar için derleme olmadığını teyit etmektedir.

enter image description here

Kullanım inşa varyant diğer hata ayıklama oluşturur ve otomatik yeniden gerektiğini değiştirmek için dışarı kaydırın, görünmüyorsa, sadece kendini yeniden yoktur. Ayrıca, ek açıklama araçlarını veya düzen sarmalayıcıları ile veri bağlama kullanıyorsanız, gerçek dosyalara ve oluşturulan dosyalara bakmadığınızdan emin olun ve düzende ve ilk alt etiketinde android etiketi vardı ve bunların kırmızı olmasına neden olabilirsiniz. paketlenecek son düzen dosyasının üretilmesi.

İlgili konular