SORU
24 Mayıs 2013, Cuma


Kullanarak Tatlar Oluşturmak - kaynak klasörleri Yapılanma ve inşa.gradle doğru

Lütfen dikkat:Cevap Xavier Cevabı sonra düzenlenmiş

Android Studio içinde aynı Uygulama Projesi Build Flavors farklı kullanmaya çalışıyorum. Ancak, korkunç bir zaman uygun bir şekilde çalışmak için yapılandırma yaşıyorum.

Adımlar:

  1. Yeni Android Studio Projesi oluşturma, adında ''. Test
  2. İnşa açın.gradle ve aşağıdaki satırları ekledi:

    productFlavors {
    flavor1 {
        packageName 'com.android.studio.test.flavor1'
        }
    flavor2 {
        packageName 'com.android.studio.test.flavor2'
        }
    }
    
  3. Android Studio yeniden başlattıktan sonra, şimdi anlıyorum4 değişik yapıYapı Türevleri bölümünde. Yani ilk ürün tat kurma konusunda başarılı şu ana kadar. **
  4. Kaynak için yeni bir klasör oluşturulurflavor1ancak, eğer yapıyorum emin değilim doğru. Yaptım işte nasıl:

    • Bu proje için Paket adım olduğunu unutmayın: com.foo.test
    • Flavor1, benim için src klasör üzerinde sağ tıklayın aslında Gezgini'nde klasörleri tek tek yapı src/flavor1/java/com/foo/test/MainActivity.java bir şekilde yarattı.
    • Yukarıdaki Eh, bu yana 'java' klasörü çalıştımmaviIDE etkin bir kaynak dizin bilir anlamını. Ayrıca, paket otomatik olarak oluşturulmuştur. Buna rağmen, sınıf bulundu çoğaltmak için bir uyarı alıyorum. See screenshot here.
    • İçin flavor2, denedim oluşturma paketi elle, ama 'src' klasör için flavor2 gibi değil, mavi, ve bu nedenle bu seçenekleri farklı zaman sağ tıkladım ve 'Yeni bir Paket' için kullanılamaz beni kullanın. See image here.
    • Unutmayın flavor1, ben de oluşturulan bir 'res' dizini, dön mavi, ama rağmen, değil teklif oluşturma ya da bir Android Kaynak dosya veya Andorid kaynak dizini, diye istediğim için kullanın farklı kaynakları için farklı tatlar.

Yanlış bir şey mi yapıyorum? Ya da ben bir şey eksik? Eğer daha fazla bilgiye ihtiyacınız varsa bana bildirin.

*Projem var gibi görünüyorikiinşa.gradle dosyaları. Bir proje klasörü kök üzerinde bulunan (\GradleTest), bu boş. İkincisi yer alan kök alt \GradleTest da 'etiketli GradleTest' (GradleTest-GradleTest) burası zaten vardı kodu açıldığında, bu nedenle, ben düzenlenmiş.

** Ben gradle ayarları kontrol ve görünüşe göreOtomatik alma kullanınalready enabled. buna Rağmen, değişiklik yapmak, inşa etmek.gradle doesn't automatically update yapı türevleri dosyası.Not:Ben de Yeniden Proje ve/veya Yapı - Proje no-go Yapmak İnşa kullanarak denedim. Ben hala projeyi kapatın ve değişikliklerin etkili olabilmesi için yeniden açın.

CEVAP
25 Mayıs 2013, CUMARTESİ


Eğer Studio tercihlerinde varsa, Gradle bölümünde, proje (varsayılan olarak, bu daha sonra etkinleştirmek edeceğiz)-al otomatik olarak sağlayabilirsiniz. Bu Stüdyo, yeniden ithal izin verir inşa.gradle zaman düzenleyebilirsiniz.

Tatlar oluşturma klasörler oluşturun değiliz bu yüzden onlar için özel bir kod kullanmak için gidiyoruz anlamına gelmez. Bunları kendiniz oluşturabilirsiniz.

my IO talk bakarsanız biz birlikte tatlar değerleri karıştırın ve değişken oluşturmak için yapı türü.

Java için kaynak:

src/main/java
src/flavor1/java
src/debug/java

3 tek bir çıkış oluşturmak için kullanılır. Bu aynı sınıfı tanımlamak anlamına gelir.

Eğer iki lezzet aynı sınıf farklı bir sürümünü sahip olmak istiyorsanız iki çeşit oluşturmanız gerekir.

src/flavor1/java/com/foo/A.java
src/flavor2/java/com/foo/A.java

Ve sonra src/main/java kodunuzu yapabilirsiniz

import com.foo.A

lezzet bağlı olarak, com doğru sürümü seçti.foo.Bir kullanılır.

Bu her iki versiyonu aynı API API/... src/main/ java . sınıfları tarafından kullanılan gelince (en azından olması gerekir

Gözden geçirilmiş soru eşleşecek şekilde düzenleyin

Ayrıca, önemli olan sadece birbirini dışlayan (kaynak klasör olarak aynı sınıf. Bu durumda/flavor1/java ve src/flavor2/java src asla birlikte seçilir, ama ana ve flavor1.

Eğer farklı bir etkinlik farklı bir sürümünü sağlamak istiyorsanız lezzet src/main/java koy.

3 tatlar vardı ve sadece aynı alanda faaliyet paylaşılan bir özel isteseydi ortak bir kaynak oluşturmak, unutmayın bu iki diğer etkinlikler için klasörler. Yeni kaynak klasörleri oluşturma ve kaynak bunları kullanmak için ayarlayın yapılandırma toplam esneklik var.

Diğer noktalar için:

2. lezzet kaynağı klasör mavi değil normal. 2. lezzet için etkinleştirmek için geçiş yapmak gerekir, ve sonra paketleri ve sınıflar içinde oluşturmak mümkün olacak. O zamana kadar, Stüdyo bir kaynak klasör olarak görmüyor. Umarım gelecekte bu IDE bunlardan haberdar etmek, geliştirmekunactivekaynak klasörleri.

Res klasöründe kaynak dosyaları oluşturabilirsiniz. bu da normal sanırım. Menü sistem tüm bu ek kaynak klasörler ile başa çıkmak için güncellenen henüz. Bu daha sonra gelecek.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bokeh

    Bokeh

    9 HAZİRAN 2014
  • George McCarron

    George McCar

    29 Mayıs 2013
  • Kindness

    Kindness

    23 Ocak 2006