2016-03-23 11 views
7

मैं अपने ग्रेड/एंड्रॉइड-स्टूडियो बिल्ड में प्री-प्री-बिल्ड शेल स्क्रिप्ट जोड़ने का प्रयास कर रहा हूं। app/build.gradle के लिए निम्न मैं जोड़ दिया है:विधि कमांड नहीं ढूंढ सका Line()

task prePreBuild << { 
    commandLine 'ls' 
} 
preBuild.dependsOn prePreBuild 

जब मैं ./gradlew assembleDebug मैं निम्नलिखित त्रुटि मिलती है साथ अपने निर्माण आह्वान:

Could not find method commandLine() for arguments [ls] on project ':app' 

तरह println 'Hello' तो यह ठीक काम करता है अगर मैं कुछ के साथ commandLine लाइन की जगह , और मैं अपने नए कार्य से आउटपुट देख सकता हूं।

मैंने "विधि कमांडलाइन नहीं ढूंढ सका" के अन्य उल्लेखों की खोज की और कुछ भी नहीं मिला। इस क्रमिक कार्य से शेल स्क्रिप्ट का आह्वान करने का सही तरीका क्या है?

+0

बारे में अधिक जानकारी जो Gradle के संस्करण आप कर रहे हैं पा सकते हैं का उपयोग करते हुए? – Blackbelt

+0

@ ब्लैकबल्ट './gradlew -v' ग्रैडल 2.4 –

+0

@ ब्लैकबेट मुझे उस परिवर्तन के साथ बहुत ही त्रुटि मिलती है:"> प्रोजेक्ट 'एप' पर तर्कों [एलएस] के लिए विधि निष्पादन योग्य() को नहीं मिला। " –

उत्तर

13

आप कार्य का प्रकार दर्शाते हैं या exec ब्लॉक उपयोग करने की आवश्यकता:

task execute(type: Exec) { 

} 

या

exec { 

} 

आप https://docs.gradle.org/current/dsl/org.gradle.api.tasks.Exec.html

+1

प्रकार का होना चाहिए धन्यवाद! मेरे उदाहरण की पहली पंक्ति को 'कार्य prePreBuild (प्रकार: Exec) {' समस्या को ठीक किया गया है। –

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