2015-07-02 4 views
13

Ich möchte APK Split basierend auf CPU ABI nach http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits, aber ich möchte die APK nur für ein bestimmtes Produkt Geschmack splitten.Android Produkt Aromen werden nicht berücksichtigt, wenn CPU ABI Split in build.gradle

Also meine build.gradle Datei hat die folgenden Produktaromen plain und market. Eigentlich möchte ich den APK-Split ausführen, wenn ich market Flavors erstelle.

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

Allerdings, wenn ich rufe gradle assemblePlainDebug und assembleMarketDebug, beide produzieren das mehr APK. Ist etwas falsch mit der obigen Konfiguration?

Ich verwende com.android.tools.build:gradle:1.2.3.

+0

Ich habe dies als einen Fehler gemeldet: https://code.google.com/p/android/issues/detail?id=178606 Bis jetzt gibt es keine Sterne außer von mir. Bitte helfen Sie, dieses Problem zu sehen, wenn Sie das gleiche Problem haben. – yuku

Antwort

8

Ich habe nach einer Möglichkeit gesucht, dies für eine Weile zu tun und habe keine feste Lösung gefunden. Es muss etwas mit den Splits zu tun haben, bevor die buildTypes und productFlavors aufgelöst werden.

Die Android Gradle - is use splits only for release possible? Frage hatte Antwort, die ich nützlich fand. Es basiert im Wesentlichen auf einer Projekteigenschaft, die beim Erstellen über die Befehlszeile oder die kontinuierliche Integrationsumgebung übergeben wird, um festzulegen, ob die Split-APK-Option aktiviert ist oder nicht.

ich es wie folgt verwendet:

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

und dann je nachdem, welche falvour oder bauen Typ Sie bauen Sie können sein:

./gradlew --project-prop splitApk assembleMarketDebug 

Dies sollte dann nur die apk Split ermöglichen, wenn dies ausdrücklich sagte auch und sollte für alles andere behindert bleiben.

+0

Danke für die Lösung, es hat funktioniert. Ich brauchte einen Geschmack mit C++ Unit-Test, um nur in X86-Architektur zu bauen. – Dzamir