2013-06-14 18 views
12


Ich habe eine Android-Anwendung, und ich möchte verschiedene Geschmacksrichtungen haben. Spezifisch möchte ich 2 Aromen haben und für jedes Aroma verschiedene Zeichenketten verwenden (unterschiedliche strings.xml Datei) und möglicherweise einige Ikonen unterschiedlich haben.Verwenden Sie verschiedene Ressourcen für verschiedene Anwendung Aromen mit gradle

Ich habe versucht, die Schaffung von zwei Ordner im Stammordner des Projekts: flav1 und flav2 und verwendet die folgenden 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' 
     } 
    } 
} 

Das Ergebnis davon ist, dass keiner der Saiten erkannt wird, mehrere Fehler der folgenden bekommen Typ:

build FAILED :

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

Fehle ich etwas? Wie sollte der Aufbau sein?

Dank

Antwort

7

Die Lösung wurde Verzeichnis

values

unter jedem entsprechenden res Ordner und alle Saiten wurden erkannt hinzuzufügen.

+0

Was ist der Unterschied zwischen "res" und "resources"? Ich bin ein AS-Neuling aus Eclipse ... Ich sehe den Ordner in meinem Projekt, aber ich bin mir nicht sicher, was es tut und wie Sie davon profitieren würden, eine separate "Ressourcen" für jeden Geschmack zu haben? –

+0

Res und Ressourcen ist die gleiche Sache. Es ist nur die Namenskonvention, die AS verwendet ("res"). Mit verschiedenen Ressourcen für jede Geschmacksrichtung können Sie beispielsweise unterschiedliche Bilder für dieselbe Ressourcen-ID erstellen (z. B. R.id.logo kann ein anderes Bild in verschiedenen Geschmacksrichtungen sein) –

Verwandte Themen