2015-02-09 12 views
6

के साथ असफल हो गया है मैंने CircleCI का उपयोग करके assembleDebug करने की कोशिश की, लेकिन इसे (प्रीडेक्स) बनाने में विफल होना चाहिए। मैं ऐसा क्यों नहीं कर सकता?ग्रैडल इकट्ठा करें डिबग और प्रीडेक्सडिबग CircleCI

  • ProductFlavor का उपयोग
  • एंड्रॉयड Gradle ver.1.1.0-RC1

समस्या

./gradlew assembleProductionDebug अप्रत्याशित रूप से 92% का निर्माण मर 3% (नाम उत्पादन है) > : ऐप: प्रीडेक्स प्रोडक्शन डिबगैक्शन ./gradlew assembleProductionDebug असफल

circle.yml

general: 
    artifacts: 
    - "app/build/outputs/apk/app-production-release-unaligned.apk" 
machine: 
    java: 
    version: openjdk7 
    environment: 
    ANDROID_HOME: /usr/local/android-sdk-linux 

dependencies: 
    pre: 
    - echo y | android update sdk --no-ui --all --filter "build-tools-21.1.2" 
    - echo y | android update sdk --no-ui --all --filter "platform-tools" 
    - echo y | android update sdk --no-ui --all --filter "tools" 
    - echo y | android update sdk --no-ui --all --filter "extra-google-google_play_services" 
    - echo y | android update sdk --no-ui --all --filter "extra-google-m2repository" 
    - echo y | android update sdk --no-ui --all --filter "extra-android-m2repository" 
    - echo y | android update sdk --no-ui --all --filter "extra-android-support" 
    - echo y | android update sdk --no-ui --all --filter "android-21" 
    - git submodule sync 
    - git submodule update --init 
    cache_directories: 
    - ~/.android 
    - ~/android 
    override: 
    - ./gradlew dependencies 

test: 
    override: 
    - ./gradlew test 

deployment: 
    master: 
    branch: master 
    commands: 
     - ./gradlew assembleProductionDebug 
+1

अरे, मैं CircleCI के लिए काम करता हूं। क्या आप हमें [email protected] पर चिल्लाना चाहते हैं ताकि हम आपके प्रोजेक्ट के बारे में थोड़ी अधिक जानकारी एकत्र कर सकें और चीजें आपके लिए काम कर सकें? – bellkev

+2

क्या आपने इसे हल करने का प्रबंधन किया था? मेरे साथ भी वही दिक्कत है। – maclir

उत्तर

1

मैं एक ही समस्या थी, यह एक कंटेनर प्रति मेमरी सीमा (यह 4GB है) के बाद से कारण होता था। gradle.properties

org.gradle.jvmargs=-Xms256m -Xmx2048m 
8

मैं एक ही मुद्दा था: मेरे लिए, समाधान का उपयोग किया गया था। यह पता चला कि मुझे सीआई बिल्ड के लिए प्रीडेक्स को अक्षम करना पड़ा था।

project.ext.preDexLibs = !project.hasProperty('disablePreDex') 

subprojects { 
    project.plugins.whenPluginAdded { plugin -> 
     if ("com.android.build.gradle.AppPlugin".equals(plugin.class.name)) { 
      project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs 
     } else if ("com.android.build.gradle.LibraryPlugin".equals(plugin.class.name)) { 
      project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs 
     } 
    } 
} 

तो फिर तुम निम्न आदेश के साथ अपने ci पर निर्माण कर सकते हैं:

जड़build.gradle में इस रखो

./gradlew ... -PdisablePreDex 
5

तो मैं एक ही मुद्दा था और यहां तक ​​कि जावा हालांकि पाया और धीरे-धीरे ढेर के आकार निर्धारित किए जा रहे थे, उन्हें डीएक्स कार्यों के रूप में पूरी तरह से सम्मानित नहीं किया जा रहा था क्योंकि ताजा धागे के टन अपने स्वयं के ढेर के आकार के साथ (अपनी मेमोरी लॉग जांचें और आप इसे देख सकते हैं) यदि ऐसा है तो

-Pcom.android.build.threadPoolSize=1 

यह ताजा 1G धागे का एक समूह को उत्पन्न करने Dexing कदम रुक जाएगा:, विधि मैं ऊपर एंड्रॉयड Gradle प्लगइन 1.3 के लिए इसे ठीक करने के लिए प्रयोग किया जाता है और उपयोग करने के लिए किया गया था। वहाँ भी है:

-Porg.gradle.parallel=false 

लेकिन मुझे किसी कारण से मल्टीडेक्स का उपयोग करते समय यह अप्रभावी पाया गया। सर्कलसीआई के लिए मुझे थोड़ा धीमा होने पर यह सबसे लगातार निर्माण कार्य माना जाता है। मुझे यकीन है कि बेहतर परिणामों के लिए ढेर आकारों को थोड़ा आगे बढ़ाया जा सकता है:

./gradlew build -PpreDexEnable=false -Pcom.android.build.threadPoolSize=1 -Dorg.gradle.parallel=false -Dorg.gradle.jvmargs="-Xms512m -Xmx512m" -Dorg.gradle.daemon=false 
+0

ब्रिलियंट! मैं यह पता लगाने की कोशिश कर रहा था कि क्या हो रहा है। यह जवाब है ... – Rpranata

संबंधित मुद्दे