2013-06-14 21 views
12


का उपयोग कर विभिन्न एप्लिकेशन स्वादों के लिए विभिन्न संसाधनों का उपयोग करें मेरे पास एक एंड्रॉइड एप्लिकेशन है और मैं अलग-अलग स्वाद लेना चाहता हूं। विशेष रूप से मैं 2 स्वाद लेना चाहता हूं और प्रत्येक स्वाद के लिए अलग-अलग तारों (विभिन्न strings.xml फ़ाइल) का उपयोग करें और शायद कुछ आइकन अलग हों।ग्रेडल

मैं इस परियोजना के रूट फ़ोल्डर में दो फ़ोल्डर्स बनाने की कोशिश की है: flav1 और flav2 और इस्तेमाल निम्नलिखित build.gradle

android { 
    compileSdkVersion "Google Inc.:Google APIs:15" 
    buildToolsVersion "17.0.0" 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 
      renderscript.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 

     instrumentTest.setRoot('tests') 
    } 

    productFlavors { 
     flav1 { 
      packageName "com.ic.flav1" 
     } 

     flav2 { 
      packageName "com.ic.flav2" 
     } 
    } 

    android.sourceSets.flav2 { 
     res { 
      srcDir 'flav2' 
     } 
     resources { 
      srcDir 'flav2' 
     } 
    } 
    android.sourceSets.flav1 { 
     res { 
      srcDir 'flav1' 
     } 
     resources { 
      srcDir 'flav1' 
     } 
    } 
} 

इसी का परिणाम है कि तार में से कोई भी मान्यता प्राप्त है, निम्न में से अनेक त्रुटियां हो रही है टाइप:

build FAILED :

error: Error: No resource found that matches the given name (at 'contentDescription' with value '@string/txt_addr').

क्या मुझे कुछ याद आ रही है? Build.gradle कैसे होना चाहिए?

धन्यवाद

उत्तर

7

समाधान प्रत्येक इसी रेस फ़ोल्डर के अंतर्गत निर्देशिका

values

जोड़ने के लिए था, और सभी स्ट्रिंग्स में मान्यता प्राप्त कर रहे थे।

+0

"res" और "संसाधन" के बीच क्या अंतर है? मैं ग्रहण से आने वाली एएस नौसिखिया हूं ... मैं अपने प्रोजेक्ट में फ़ोल्डर देखता हूं लेकिन मुझे यकीन नहीं है कि यह क्या करता है और प्रत्येक स्वाद के लिए अलग "संसाधन" होने से आपको कैसे फायदा होगा? –

+0

Res और संसाधन एक ही बात है। यह सिर्फ नामकरण सम्मेलन है कि एएस उपयोग करता है ("res")। प्रत्येक स्वाद के लिए अलग-अलग संसाधन होने से आपको उदाहरण के लिए एक ही संसाधन आईडी के लिए अलग-अलग छवियां मिल सकती हैं (उदाहरण के लिए R.id.logo विभिन्न स्वादों में एक अलग छवि हो सकती है) –

संबंधित मुद्दे