2015-06-23 12 views
8

मैं एंड्रॉइड स्टूडियो का उपयोग कर एक एंड्रॉइड प्रोजेक्ट बनाता हूं। अनुप्रयोग के build.gradle में जोड़ें:संपत्ति चेकस्टाइल कॉन्फ़िगरेशन फ़ाइल में त्रुटि मौजूद नहीं है

apply from: '../config/quality.gradle' 

तो मैं दो फ़ाइलों के साथ config निर्देशिका बनाने के लिए: quality.gradle की तरह:

apply plugin: 'checkstyle' 

task checkstyle(type: Checkstyle) { 
    configFile file("${project.rootDir}/config/checkstyle.xml") 
    source 'src' 
    include '**/*.java' 
    exclude '**/gen/**' 
    classpath = files() 
} 

और checkstyle.xml की तरह:

<?xml version="1.0"?> 
<!DOCTYPE module PUBLIC 
    "-//Puppy Crawl//DTD Check Configuration 1.3//EN" 
    "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> 

<module name="Checker"> 

    <module name="TreeWalker"> 

     <module name="NeedBraces"> 
      <property name="tokens" value="LITERAL_CASE, LITERAL_DEFAULT"/> 
      <property name="allowSingleLineStatement" value="true"/> 
     </module> 

    </module> 

</module> 

रनिंग gradle checkstyle मुझे देता है निम्नलिखित त्रुटि:

Executing external task 'checkstyle'... 
:app:checkstyle FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:checkstyle'. 
> Unable to create a Checker: cannot initialize module TreeWalker - Property 'allowSingleLineStatement' in module NeedBraces does not exist, please check the documentation 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

अगर मैं लाइन को हटा दें:

<property name="allowSingleLineStatement" value="true"/> 

यह काम करता है। लेकिन documentation पढ़ना, पहले संस्करण को भी काम करना चाहिए।

यह के साथ इसी तरह होता है:

* What went wrong: 
Execution failed for task ':app:checkstyle'. 
> Unable to create a Checker: cannot initialize module TreeWalker - Unable to instantiate EmptyCatchBlock 

क्या मैं गलत या किस तरह से कर रहा हूँ मैं डॉक्स missunderstanding हूँ:

<module name="EmptyCatchBlock"> 
    <property name="exceptionVariableName" value="expected|ignore"/> 
</module> 

मुझे फेंकता है कि?

उत्तर

16

इस लेखन के समय, डिफ़ॉल्ट रूप से ग्रैडल uses Checkstyle 5.9allowSingleLineStatement संपत्ति केवल added in Checkstyle 6.5 थी। तो, अगर आप इस तरह एक नए Checkstyle संस्करण का उपयोग करके यह काम कर पाने के लिए सक्षम होना चाहिए:

checkstyle { 
    configFile = file("${project.rootDir}/config/checkstyle.xml") 
    toolVersion = '6.7' 
} 

दुर्भाग्य से, Checkstyle प्रलेखन संस्करणीकृत नहीं है, इसलिए वेबसाइट हमेशा नवीनतम डॉक्स केवल है, जो यह मुश्किल बना देता है इस तरह की चीजें सामान।

+0

ध्यान दें कि मुझे 'file' कीवर्ड के साथ 'configFile' के पथ से पहले होना था, लेकिन समाधान काम किया। थॉमस बहुत बहुत धन्यवाद। – Birei

+0

यूप, 'configFile' एक' फ़ाइल' है; तदनुसार मेरा जवाब अपडेट किया गया। धन्यवाद! –

+0

ने इस समाधान की कोशिश की, लेकिन आईडीईए मुझे दिखाता है कि 'त्रुटि: (12, 0) ग्रैडल: परियोजना 'एप' का मूल्यांकन करने में एक समस्या आई। > प्रोजेक्ट 'पर तर्क] [6.7] के लिए विधि टूल वर्जन() नहीं मिला:' app'.' – pratt

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