में क्रैश करता है मैं जावा/एंड्रॉइड के लिए नया हूं इसलिए मुझे आशा है कि यह हल करने के लिए एक बहुत ही आसान बात है।libGDX सेटअप मुझे जावा 8 का उपयोग करने की अनुमति देता है जो एंड्रॉइड
मैंने प्रोजेक्ट बनाने के लिए libGDX's setup का उपयोग किया है, जिसे मैंने एंड्रॉइड स्टूडियो में आयात किया था। मुझे नहीं पता था कि Supplier
इंटरफ़ेस केवल जावा 8 के लिए उपलब्ध था, और इसे कोर मॉड्यूल में उपयोग किया गया, जहां तक मैं समझता हूं, यह एक लाइब्रेरी में संकलित करता है जो सभी एंड्रॉइड/एचटीएमएल/डेस्कटॉप/आईओएस संस्करणों द्वारा साझा किया जाता है खेल। डेस्कटॉप संस्करण ठीक चलाता है (मेरे पास जावा 8 स्थापित है), लेकिन मेरा एंड्रॉइड ऐप NoClassDefFoundError
त्रुटि (बीटीडब्ल्यू, त्रुटि संदेश जो मैंने लिखा है, का नाम दिखा रहा था, और Supplier
नहीं, लेकिन त्रुटि जैसे ही मैं गायब हो गया, प्रत्येक संदर्भ को Supplier
पर हटा दिया गया और जब मैंने उन्हें जोड़ा, तो वापस आया, इसलिए स्पष्ट रूप से त्रुटि संदेश वास्तविक समस्या वर्ग नहीं दिखाता है)।
यदि मैं अपने एंड्रॉइड मॉड्यूल में Supplier
का उपयोग करने का प्रयास करता हूं, तो यह मुझे कक्षा आयात करने भी नहीं देगा, इसलिए यह जानता है कि यह जावा संस्करण का समर्थन नहीं करता है, लेकिन यह खुशी से मुझे कोर में इसका उपयोग करने देगा बिना किसी चेतावनी के मॉड्यूल। मुझे यकीन है कि Supplier
के संदर्भों को हटाने से समस्या हल हो जाएगी, लेकिन अगर मैं अनजाने में किसी भी जावा 8 फीचर्स का उपयोग करता हूं, तो यह फिक्स रनटाइम त्रुटियों का कारण बन सकता है, इसलिए इसे हल करने का एक अच्छा तरीका नहीं है।
मुझे नहीं पता कि यह प्रोजेक्ट में जावा 8 का उपयोग करने के लिए कहां सेट है, और ऐसा लगता है कि .gradle, .xml और .iml फ़ाइलों का एक गुच्छा दिखाई देता है जो स्पष्ट रूप से कॉन्फ़िगरेशन से संबंधित हैं।
apply plugin: "java"
sourceCompatibility = 1.6
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
sourceSets.main.java.srcDirs = [ "src/" ]
eclipse.project {
name = appName + "-core"
}
एंड्रॉयड स्टूडियो sourceCompatibility = 1.6
लाइन धूसर हो पता चलता है और कहते हैं, "असाइनमेंट नहीं किया जाता है" जब मैं उस पर होवर करें: यहाँ कोर मॉड्यूल में मेरे build.gradle
फ़ाइल है। तो यह समस्या का हिस्सा हो सकता है।
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
इसके अलावा, यहां जड़ build.gradle
फ़ाइल में core
अनुभाग है:
मेरे core.iml
फ़ाइल इस लाइन भी शामिल है
project(":core") {
apply plugin: "java"
dependencies {
compile "com.badlogicgames.gdx:gdx:$gdxVersion"
}
}
तो, मैं इसे देने से रोकने के लिए क्या बदलना चाहिए मैं अपने मूल परियोजना में जावा 8 का उपयोग करता हूं?