2015-07-02 10 views
13

Voglio dividere APK basato su CPU ABI in base a http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits, tuttavia voglio dividere l'APK solo per un determinato aroma di prodotto.Gli aromi di prodotto Android non vengono considerati quando si utilizza CPU ABI diviso in build.gradle

Quindi il mio file build.gradle ha i seguenti prodotti: plain e market. In realtà voglio che la divisione APK venga eseguita quando si crea l'aroma market.

android { 
    productFlavors { 
     plain { 
     } 
     market { 
      splits { 
       abi { 
        enable true 
        reset() 
        include 'armeabi', 'armeabi-v7a', 'x86', 'mips' 
        universalApk true 
       } 
      } 
     } 
    } 
} 

Tuttavia, quando invoco gradle assemblePlainDebug e assembleMarketDebug, entrambi produce multiplo APK. C'è qualcosa di sbagliato nella configurazione sopra?

Sto usando com.android.tools.build:gradle:1.2.3.

+0

Ho segnalato un errore: https://code.google.com/p/android/issues/detail?id=178606 Finora non ci sono stelle se non da me. Si prega di aiutare a interpretare quel problema se si verifica lo stesso problema. – yuku

risposta

8

Ho cercato un modo per farlo per un po 'e non ho trovato una soluzione solida. Qualcosa che ha a che fare con gli split che devono essere eseguiti prima di risolvere i buildTypes e productFlavors.

La domanda Android Gradle - is use splits only for release possible? aveva una risposta che ritenevo utile. Fondamentalmente si basa su una proprietà del progetto, passata quando si costruisce tramite la riga di comando o l'integrazione dell'integrazione continua, per impostare il tempo in cui l'opzione apk split è abilitata o meno.

ho usato in questo modo:

splits { 
    abi { 
     enable project.hasProperty('splitApk') 
     reset() 
     include 'x86', 'armeabi-v7a', 'mips', 'armeabi' 
     universalApk true 
    } 
} 

e poi a seconda di ciò falvour o il tipo si stanno costruendo costruire è possibile includere:

./gradlew --project-prop splitApk assembleMarketDebug 

Questo dovrebbe quindi attivare solo la divisione apk quando esplicitamente detto anche e dovrebbe rimanere disabilitato per tutto il resto.

+0

Grazie per la soluzione, ha funzionato. Avevo bisogno di un assaggio con il test dell'unità C++ per costruire solo nell'architettura X86. – Dzamir

Problemi correlati