ho due sapori del mio progetto:Come sostituire una stringa per un buildvariant con gradle in Android Studio?
flavor1 -> packagename: com.example.flavor1
flavor2 -> packagename: com.example.flavor2
ora voglio costruire un buildvariant di flavor1 e flavor2. L'unica differenza di buildvariant è un altro nome pacchetto.
Il mio progetto utilizza MapFragments e ha un solo manifest - quindi inserisco il nome di autorizzazione di MAPS_RECEIVE nei miei file di risorse stringa dei rispettivi sapori.
La domanda è: come posso sostituire una risorsa stringa di un buildvariant?
ho provato l'approccio seguente (described in this post):
buildTypes{
flavor1Rev{
packageName 'com.example.rev.flavor1'
filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: ['package_permission' : 'com.example.rev.flavor1.permission.MAPS_RECEIVE'])
}
}
Ma usando questo ho ottenuto questo errore:
Could not find method filter() for arguments [{tokens={package_permission=com.example.rev.flavor1.permission.MAPS_RECEIVE}}, BuildTypeDsl_D ecorated{name=ReplaceTokens, debuggable=false, jniDebugBuild=false, renderscript DebugBuild=false, renderscriptOptimLevel=3, packageNameSuffix=null, versionNameS uffix=null, runProguard=false, zipAlign=true, signingConfig=null}] on BuildTypeD sl_Decorated{name=buderusFinal, debuggable=false, jniDebugBuild=false, renderscr iptDebugBuild=false, renderscriptOptimLevel=3, packageNameSuffix=null, versionNa meSuffix=null, runProguard=false, zipAlign=true, signingConfig=null}.
Devo definire un proprio compito per il metodo del filtro?
EDIT [2013_07_09]:
stringa in src/flavor1/res:
<string name="package_permission">package_permission</string>
Codice in build.gradle per sostituire la stringa:
buildTypes{
flavor1Rev{
copy{
from('src/res/'){
include '**/*.xml'
filter{String line -> line.replaceAll(package_permission, 'com.example.rev.flavor1.permission.MAPS_RECEIVE')}
}
into '$buildDir/res'
}
}
}
Ehi, ho cercato un'altra soluzione. Ma non funziona. Sebbene la compilazione abbia successo, ma la stringa non viene sostituita. Qualcuno può darmi un suggerimento cosa c'è di sbagliato con il mio compito di copia? – owe
E la nuova Fusione Manifest? può funzionare per te? http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger – OriolJ