2015-03-25 14 views
8

मुझे उस प्रसिद्ध ': app: preDexDebug'-error का अनुभव हो रहा है।निष्पादन कार्य के लिए विफल रहा: ': app: preDexDebug'

सबसे पहले: परियोजना की सफाई या पुनर्निर्माण यह त्रुटियों के बिना काम करता है। डिफ़ॉल्ट सेटिंग्स के तहत मैंने प्रोजेक्ट बाइटकोड संस्करण को 1.7 पर सेट किया है और परियोजना संरचना में एसडीके स्थान के तहत जेडीके स्थान भी सही प्रतीत होता है। शोध के कुछ समय बाद मुझे अभी भी इस समस्या का समाधान नहीं मिला।

त्रुटि तब होती है जब मैं एंड्रॉइड स्टूडियो के तहत प्रोजेक्ट चलाने की कोशिश करता हूं। जैसा कि पहले उल्लेख किया गया है, ग्रैडल के साथ सफाई, पुनर्निर्माण और समन्वयन ठीक काम करता है (ऐसा लगता है - कोई त्रुटि नहीं)।

यह वही है Gradle कंसोल से पता चलता है:

Configuration on demand is an incubating feature. 
:app:preBuild UP-TO-DATE 
:app:preDebugBuild UP-TO-DATE 
:app:compileDebugNdk UP-TO-DATE 
:app:checkDebugManifest 
:app:prepareDebugDependencies 
:app:compileDebugAidl UP-TO-DATE 
:app:compileDebugRenderscript UP-TO-DATE 
:app:generateDebugBuildConfig UP-TO-DATE 
:app:generateDebugAssets UP-TO-DATE 
:app:mergeDebugAssets UP-TO-DATE 
:app:generateDebugResValues UP-TO-DATE 
:app:generateDebugResources UP-TO-DATE 
:app:mergeDebugResources UP-TO-DATE 
:app:processDebugManifest UP-TO-DATE 
:app:processDebugResources UP-TO-DATE 
:app:generateDebugSources UP-TO-DATE 
:app:compileDebugJava UP-TO-DATE 
:app:preDexDebug 
AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":{},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"} 
AGPBI: {"kind":"SIMPLE","text":"com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)","position":{},"original":"com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)","position":{},"original":"\tat com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)","position":{},"original":"\tat com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)","position":{},"original":"\tat com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)","position":{},"original":"\tat com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.processClass(Main.java:704)","position":{},"original":"\tat com.android.dx.command.dexer.Main.processClass(Main.java:704)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)","position":{},"original":"\tat com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.access$300(Main.java:83)","position":{},"original":"\tat com.android.dx.command.dexer.Main.access$300(Main.java:83)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)","position":{},"original":"\tat com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)","position":{},"original":"\tat com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)","position":{},"original":"\tat com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)","position":{},"original":"\tat com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.processOne(Main.java:632)","position":{},"original":"\tat com.android.dx.command.dexer.Main.processOne(Main.java:632)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)","position":{},"original":"\tat com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)","position":{},"original":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)","position":{},"original":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)","position":{},"original":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.Main.main(Main.java:106)","position":{},"original":"\tat com.android.dx.command.Main.main(Main.java:106)"} 
AGPBI: {"kind":"SIMPLE","text":"...while parsing impl/org/controlsfx/ImplUtils.class","position":{},"original":"...while parsing impl/org/controlsfx/ImplUtils.class"} 
AGPBI: {"kind":"SIMPLE","text":"1 error; aborting","position":{},"original":"1 error; aborting"} 


FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:preDexDebug'. 
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_67\bin\java.exe'' finished with non-zero exit value 1 

आप नीचे देख के रूप में, मैं हटा दिया - मेरी build.gradle में लाइन, लेकिन यह अभी भी काम नहीं किया "एंड्रॉयड संकलन ...।" । तो यहाँ मेरी Gradle निर्माण फ़ाइल है:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion '22.0.1' 
    compileOptions.encoding = 'windows-1251' 

    defaultConfig { 
     applicationId "de.giessen.advenco.key2operate" 
     minSdkVersion 15 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_7 
     targetCompatibility JavaVersion.VERSION_1_7 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
} 

ऐसा लगता है कि Gradle की तरह मेरे JDK के साथ कुछ समस्या है, लेकिन मैं किस तरह की और उन्हें ठीक करने के लिए पता नहीं है। मुझे आशा है कि आप लोग मदद कर सकते हैं।

संपादित करें: मैं, पता चला कि version (0034.0000) का मतलब है कि मैं जावा 8 का उपयोग कर अजीब बात है, कि मैं निश्चित रूप से जावा 8. का उपयोग नहीं करते एंड्रॉयड स्टूडियो में मैं "C:\Program Files\Java\jdk1.7.0_67" को JDK-पथ परिभाषित कर रहा हूँ। यह 64-बिट जावा है (मैं विन 7 64-बिट बीटीडब्ल्यू का उपयोग कर रहा हूं।)। इसके अलावा मेरे पास 32-बिट जावा "C:\Program Files (x86)\Java\jdk1.7.0_75" पर है, लेकिन मैं एंड्रॉइड स्टूडियो से अपने स्थान पर इशारा नहीं कर रहा हूं (मुझे अपनी मशीन पर दोनों संस्करणों की आवश्यकता है)। क्या किसी को पता है, क्यों एंड्रॉइड स्टूडियो सोचता है, कि मेरे पास मेरी मशीन पर जावा 8 है? जैसा कि आप मेरी ग्रेडल बिल्ड फ़ाइल में देख सकते हैं, मैंने sourceCompatibility और targetCompatibility से JavaVersion.VERSION_1_7 सेट किया है। क्या एंड्रॉइड स्टूडियो में कहीं छिपी हुई सेटिंग्स हैं, जो जावा 8 सेटिंग को परिभाषित करती हैं?

उत्तर

1

इसे हल किया गया।

मुझे क्या भ्रमित किया गया: आउटपुट com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)","position":{},"original":"com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)" मुझे सोचने दो, कि त्रुटि कुछ एंड्रॉइड पुस्तकालयों से निकलती है, क्योंकि प्रत्येक जेडीके-सेटिंग को 1.7 पर सेट किया गया था।

लेकिन मुझे पता था कि कहीं जावा 8 का उपयोग किया गया था। यह मेरे लिए वास्तव में अजीब था।

समाधान: भले ही पैरामामेंट --स्टैकट्रैस या --debug का उपयोग करने के बारे में सूचित किया गया था, मुझे नहीं पता था कि उन्हें कहां उपयोग करना है (इसे कहीं भी समझाया नहीं गया था)। सेटिंग्स को खोजने के बाद मैंने इस विकल्प के लिए टेक्स्टफील्ड पर ठोकर खाई। तो मैंने इसमें "--debug" लिखा था। इस विकल्प ने मुझे जानकारी दी, वास्तव में त्रुटि का क्या कारण बनता है। डीबग-मोड के लिए धन्यवाद लाइब्रेरी का शीर्षक दिया गया था, जिसके कारण जावा 8 का उपयोग करके त्रुटि हुई। चूंकि ग्रहण इस बारे में शिकायत नहीं करता है, मेरी कंपनी में से कोई भी इसका ख्याल नहीं रखता है। मुझे बदले में क्या सोचने दो, कि सब कुछ सही होना था।

चीजों को कम करने के लिए: यदि आप पहले से कई लोगों की तरह त्रुटियों का सामना कर रहे हैं, लेकिन उनके समाधान काम नहीं करते हैं या आपका मामला बहुत खास प्रतीत होता है, तो बस "--debug" का उपयोग करें। सच्ची सूचनाएं वहां छिपी हुई हैं।

+1

पर बदलने के बाद यह कहने में मदद मिलेगी कि * बिल्कुल * कहां * आप इस अच्छे छोटे डीबग स्विच को डालते हैं ... :( – Zordid

+2

टर्मिनल में लिखते हैं "gradlew - -debug "ओ इसे हर बार उपलब्ध कराने के लिए फ़ाइल-> सेटिंग्स-> बिल्ड, निष्पादन, परिनियोजन-> कंपाइलर और फ़ील्ड से कमांड लाइन विकल्प "--stacktrace --debug" – Ewoks

+0

यहां देखें, पुरुष जावा एसडीके संस्करण 1.7 http://stackoverflow.com/questions/19608742/how-to-set-java-sdk-path-in-androidstudio –

0

मुझे एक ही समस्या थी।

मेरे लिए काम करता है: buildToolsVersion '21.1.2' यह एजीपीबीआई को चेतावनी के रूप में दिखाता है, लेकिन यह अभी भी संभव संकलन है।

+0

के लिए धन्यवाद अपने उत्तर दें, लेकिन मेरी समस्या अभी भी बनी हुई है, बिल्ड टूल्स संस्करण को 21.1.2 – KJaeg

1

जोड़ने के लिए --debug (या - stacktrace) फ़ाइल पर जाएं .. सेटिंग्स .. बिल्ड, निष्पादन, तैनाती .. कंपाइलर ..कमांड लाइन तर्क

+0

"--debug" कैसे जोड़ें? क्या आप नमूना कोड दिखा सकते हैं? धन्यवाद – user1571055

1

फ़ाइल> अन्य सेटिंग> डिफ़ॉल्ट सेटिंग> निर्माण, निष्पादन, तैनाती> संकलक और कमांड लाइन के लिए निम्न तर्क जोड़ने के पक्ष में दलील

--debug --stacktrace 

Screenshot here

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

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