Autore Topic: Flavour e lib importate  (Letto 457 volte)

Offline arlabs

  • Utente normale
  • ***
  • Post: 430
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Flavour e lib importate
« il: 10 Marzo 2015, 12:12:59 CET »
0
Ciao,

secondo voi c'è un modo per selezionare diverse lib importate in base al flavour?
L'obiettivo è di evitare di importare SDK e adapters di Ad networks nella versione "paid" dell'App.

Da qui sembrerebbe che agisca solo su Manifest, src e risorse.
http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Sourcesets-and-Dependencies

Potrei agire in qualche modo sulle dependecies.
Cioé, invece di scrivere
Codice (XML): [Seleziona]
    compile fileTree(dir: 'libs', include: ['*.jar'])
Specificare diverse compile per flavour? Si può fare con i variant (debug e release) ma non ci sono riuscito con i flavours.

Qualcuno ha idea di come fare?

Grazie.

P.S. potrei magari agire anche sul file proguard e rimuovere la clausa -keep per la versione paid? Ma anche quello è fuori dalla cartella src.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Flavour e lib importate
« Risposta #1 il: 16 Marzo 2015, 18:48:00 CET »
0
Potrebbe bastare indicare le compile del flavor, sostituendo compile con flavor1Compile.

Dovrebbe essere spiegato qua: Gradle Plugin User Guide - Android Tools Project Site

Codice: [Seleziona]
    dependencies {
        flavor1Compile "..."
    }

Fammi sapere se ti risolve, che sono interessato.  :-P
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline arlabs

  • Utente normale
  • ***
  • Post: 430
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:Flavour e lib importate
« Risposta #2 il: 17 Marzo 2015, 15:41:39 CET »
0
Ho provato senza grandi risultati.

Mettendo solo
Codice (XML): [Seleziona]
    freeCompile fileTree(dir: 'libs', include: ['*.jar'])
senza la controparte "paid", non funziona..

Mettendo così:
Codice (XML): [Seleziona]
    paidCompile fileTree(dir: 'libs', include: [])
    freeCompile fileTree(dir: 'libs', include: ['*.jar'])

Compila ma la dimensione dell'APK non cambia.
Se, viceversa, tolgo i .jar dalla cartella entrambi gli APK si riducono di dimensione.


Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Flavour e lib importate
« Risposta #3 il: 17 Marzo 2015, 18:31:13 CET »
+1
Non so se è fattibile, ma proverei a mettere le librerie che devono stare in una versione particolare, in un folder a parte e includerei la compilazione di quel folder solo nel flavour che serve.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline arlabs

  • Utente normale
  • ***
  • Post: 430
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:Flavour e lib importate
« Risposta #4 il: 18 Marzo 2015, 12:47:19 CET »
0
Ho spostato le lib di InMobi in una cartella ads ed ho configurato così:

Codice (XML): [Seleziona]
    compile fileTree(dir: 'libs', include: ['*.jar'])
    freeCompile fileTree(dir: 'libs/ads', include: ['*.jar'])

Funziona!

Grazie bradipao.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Flavour e lib importate
« Risposta #5 il: 18 Marzo 2015, 13:35:53 CET »
0
Funziona!
Grazie bradipao.

Grazie a te per essere tornato a spiegare come hai fatto e che funziona.  :-)

Adesso ho imparato una cosa nuova e rimane pure memoria per futuri utenti.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store