IntelliJ में कोटलिन अनसुलझे संदर्भ


93

मैंने कोटलिन को सीखने के लिए ट्यूटोरियल के साथ शुरुआत की IntelliJ। जब मैंने उदाहरण को चलाने की कोशिश की

fun main(args: Array<String>) {
 println("lol")
}

निष्पादन इस संदेश के साथ निलंबित है यह Error:(5, 5) Kotlin: Unresolved reference: println पहली बार है जब मैं IntelliJ का उपयोग कर रहा हूं। मैंने कभी भी किसी Javaपरियोजना पर काम नहीं किया है। क्या मुझे कुछ याद आ रहा है?

संपादित करें: मैंने दूसरे प्रश्न को पहले ही देख लिया है। उत्तर मेरी स्थिति के लिए मान्य नहीं है।


संस्करण Intellij IDEA? कोटलिन प्लगइन का कौन सा संस्करण स्थापित है?
D3xter

कोटलिन रनटाइम डायलॉग में आपने कौन सा विकल्प चुना?
यूल 30:15

मैंने इसे कल ही स्थापित किया था। वीडियो 14.1 का था और लेटेस्ट
कोटलीन

हां मुझे ग्रैडल और नेटबीन्स का उपयोग करके "हैलो वर्ल्ड" उदाहरण पर यह भी मिल रहा है। ग्रेडेल बिल्ड कार्य करता है। मैं Netbeans के साथ भी समस्या में एक प्लग की तरह लग रहा है। काश नेटबीन्स प्लगइन के लिए कोई हालिया अपडेट नहीं है
होगा

जवाबों:


92

आपका इंटेलीज आईडीईए प्लगइन और कोटलीन रनटाइम / कंपाइलर जो आप प्रोजेक्ट में उपयोग करते हैं, मिलान करने की आवश्यकता है। उदाहरण के लिए यदि IDE प्लगइन बीटा 1 है, लेकिन M12 का उपयोग करके आपका ग्रेडल / मावेन प्रोजेक्ट, आपके पास वर्णित समस्याओं के समान ही होगा। इसलिए जांचें कि सब कुछ ऊपर है।

यदि आपके पास अभी भी समस्या है, तो कुछ पुराने प्लगइन्स के साथ आपको Intellij IDEA में कैश साफ़ करना होगा (फ़ाइल मेनू, क्लियर कैश और रीस्टार्ट, पुनरारंभ करने का विकल्प चुनें)।


क्लीयरिंग कैश का एक संयोजन, एंड्रॉइड स्टूडियो को अपडेट करना और कोटलिन प्लगइन ने इसे मेरे लिए तय किया। धन्यवाद
user1405990

हाय फिर, सामान पर विचार करने के लिए कुछ समय और कोटलिन गूगल-आईएनजी का एक सा - मुझे नहीं लगता कि इसका कारण प्लगइन-एस पर हैprintln में है kotlin.io पैकेज। कोटलिन- stdlib JAR में "kotlin.io" है। इसलिए सतह पर कोई समस्या नहीं है। मैंने स्पष्ट रूप से kotlin.io को शामिल किया है। * - परिणाम Unresolved reference: io:। एक जार संग्रह के रूप में, संदर्भ समाधान बालवाड़ी सामान होना चाहिए । तो क्या चल रहा है!??
होगा

मैं वापस आ गया हूं ... Netbeans लोग इसे 'ठीक' भी कर सकते हैं - netbeans उपयोगकर्ता कैश को ड्रॉप करें। आप नेटबीन्स कैश डायरेक्टरी के स्थान को हेल्प / अबाउट बॉक्स पर क्लिक करके देख सकते हैं। स्वच्छ - नेटबीन्स को रोकें - कैश छोड़ें - नेटबिन को पुनरारंभ करें - पुनर्निर्माण करें! वोलिया
होगा

आप अपने Gradle निर्माण फाइल में इस मुद्दे को देख रहे हैं तो केवल लेकिन नहीं परियोजना स्रोत फ़ाइलें, इस मदद कर सकता है: discuss.kotlinlang.org/t/...
Alexo

25

अगर किसी को इस और NEITHER Invalidate Cache या Update Kotlin's Versionकाम से ठोकर लगती है :

1) सबसे पहले, सुनिश्चित करें कि आप इसे आईडीई के बाहर से बना सकते हैं। यदि आप उपयोग कर रहे हैं gradle, उदाहरण के लिए:

gradle clean build

यदि सबकुछ ठीक हो जाता है, तो आपके पर्यावरण के साथ काम करने के लिए सभी अच्छे हैं Kotlin

2) आईडीई बिल्ड को ठीक करने के लिए, निम्नलिखित प्रयास करें :

परियोजना संरचना -> {मॉड्यूल का चयन करें} -> कोटलिन -> FIX

जैसा कि जेटब्रेन के सदस्य द्वारा यहां सुझाया गया है: https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597


13
मैं एंड्रॉइड स्टूडियो का उपयोग कर रहा हूं। मेरी परियोजना संरचना> मॉड्यूल में "कोटलिन" विकल्प नहीं है। कोई विचार?
ऑटोनोमस

4
मॉड्यूल का चयन करने के बाद भी इस कोटलिन विकल्प को नहीं देख रहा है ... एंटरप्राइज़ इंटेलीज का उपयोग कर रहा है, और कोटलिन जाहिरा तौर पर पहले से ही कॉन्फ़िगर किया गया है जब मैं उपकरण पर क्लिक करता हूं -> कोटलिन -> कॉन्फ़िगर
Heug

23

मेरे मामले में, यह एक गलत धारणा थी IntelliJ उदाहरण।

प्रोजेक्ट संरचना -> एसडीके -> जावा एसडीके को फिर से निकालें और जोड़ें


OpenJDK को हटाने और Oracle JDK को स्थापित करने के बाद यह मेरा मुद्दा था। धन्यवाद।
पैट्रिक

इसने IntelliJ 2019.3 और OpenJDK 11. पर मेरे मुद्दे को हल कर दिया है। मुझे बस एसडीके को फिर से निकालना और जोड़ना था।
z11i

10

इस मुद्दे में भाग गया। मुझे अपनी बिल्ड.ग्रेड में निम्न जोड़ना पड़ा:

apply plugin: 'kotlin-android'


8

ठीक है, मैं यहां कुछ बार गया हूं और पूरी तरह से यकीन नहीं है कि यह कैसे या क्यों होता है लेकिन पढ़ने से इसके कोटलिन / जेवीएम बेमेल होने का पता चलता है। मैंने इस पृष्ठ पर वर्णित कई चीजों की कोशिश की है, लेकिन पूरी सफलता के बिना नहीं। यह उस तरह का लक्षण था जैसा आईडीई आईडीई के माध्यम से परीक्षण चलाने की कोशिश करने के बाद संदेश पैनल में प्रदर्शित कर रहा था। हालाँकि कोड पैनल में कोई लाल रेखा नहीं है जो यह दर्शाती है कि मॉड्यूल को ढूंढा या आयात नहीं किया जा सकता है या कुछ भी अप्रिय नहीं है।

यहाँ छवि विवरण दर्ज करें

मेरी परियोजना (इसको लिखने के समय) इंटेलीजे में एक ढाल 4.10.2 कोटलिन 1.3 परियोजना है (IntelliJ IDEA 2018.2.5 (अंतिम संस्करण) बिल्ड # IU-182.4892.20, 16 अक्टूबर, 2018 को बनाया गया)

शुरुआत के लिए हालांकि, मैंने कैश को अमान्य कर दिया और पुनः आरंभ किया। फिर एक ढाल साफ निर्माण चला। परियोजना के पुनर्निर्माण के बाद अभी भी कोई खुशी नहीं है। मैं परियोजना सेटिंग्स में गया और देखा कि संकलक संस्करण जावा 8 पर सेट नहीं थे, मैंने कंपाइलर / कोटलिन / टारगेट जेवीएम संस्करण और कंपाइलर / जावा / प्रोजेक्ट बाइट कोड को 1.8 / 8 (नीचे देखें) सेट किया, फिर कुछ परीक्षण किए आईडीई और हम व्यापार में वापस आ गए हैं! मेरे मामले में संदर्भ हल हो गए।

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें


मेरे पास एक समान मुद्दा था, लेकिन मुझे अपने मॉड्यूल मॉड्यूल को सही लक्ष्य जेवीएम संस्करण में बदलना पड़ा
जेक वॉल्श

4

मेरे लिए, यह परियोजना संरचना में ग्रैडल लाइब्रेरी के लापता होने के कारण था।

बस build.gradle में जोड़ें: apply plugin: 'idea'

और फिर चलाएं: $ gradle idea

उसके बाद ग्रेडेल निर्भरता पुस्तकालयों का पुनर्निर्माण करता है और संदर्भों को मान्यता दी जाती है!


गायब हुए लाइब्रेरियों
कौशिक बर्कुले

3

स्टैंडअलोन कोटलिन परियोजनाओं के लिए एक संभावित समाधान रूट परियोजना के अंदर स्पष्ट रूप से कोटलिन मानक कामों को शामिल करना है।

IntelliJ IDEA में ऐसा करने के लिए:

  • Ctrl + Shift + A दबाएं (खोज क्रिया या विकल्प)
  • "प्रोजेक्ट में कोटलिन कॉन्फ़िगर करें" टाइप करें और इसे आपके लिए मानक लिबास में शामिल करें

3

kotlinफॉलो के रूप में जोड़कर मेरी समस्या का समाधान किया गया

प्रेजेंटेशन .ग्रेड (app.gradle)

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android' // here

apply plugin: 'kotlin-android-extensions' // and here

android {
    ...
}

dependencies {
    ...
}

domain.gradle (शुद्ध कोटलिन)

मेरी त्रुटि यहां फेंक दी गई, क्योंकि Android Studio ने मेरे डोमेन मॉड्यूल को शुद्ध जावा मॉड्यूल के रूप में बनाया और जावा के रूप में प्लगइन को लागू किया, और मैंने इसे अपने प्रस्तुति मॉड्यूल में उपयोग किया जो कि एक Android / Kotlin मॉड्यूल है

एंड्रॉइड स्टूडियो पैकेज के पथ को ढूंढता है और आयात करता है लेकिन असंगतता निर्माण की अनुमति नहीं देता है।

बस के apply plugin: 'java'रूप में कोटलिन को हटा दें और स्वाइप करें

apply plugin: 'kotlin' // here is

dependencies {
    ...
}

...

data.gradle

apply plugin: 'com.android.library'

apply plugin: 'kotlin-android' // here

apply plugin: 'kotlin-android-extensions' // and here 

android {
    ...
}

dependencies {
    ..
}

मुझे लगता है कि यह सहायक होगा


1

IDEA 14.1.5, Kotlin v.1.0.0-beta-1038-IJ141-17 के साथ भी ऐसा ही था।
नई परियोजना बनाते समय कोटलिन को अपनी सूची प्रविष्टि (जैसे जावा) मिलती है, लेकिन केवल कार्यशील विन्यास था:

नया | परियोजना | जावा | "कोटलिन (जावा)" (सुनिश्चित करें कि आपके पास प्रोजेक्ट एसडीके कॉन्फ़िगर है, भी)
लाइब्रेरी का उपयोग करें: बनाएं, "कॉपी करें: लिबास"।


1

मैंने सब कुछ करने की कोशिश की: क्लीन बिल्ड फ़ोल्डर्स, रन gradle clean build, ए.एस. अमान्य कैश (x2) को निष्पादित करें, कोटलिन प्लगइन को पुनर्स्थापित करें, पीसी को पुनरारंभ करें।

लेकिन अंत में यह सब करने के बाद भी यह काम नहीं कर रहा था, लेकिन build.gradleइस लाइन के प्रोजेक्ट से हटाने का काम भी कर रहा था: apply plugin: 'kotlin-android-extensions'सिंक सिंक और उसके बाद फिर से काम करना


1

मुझे भी यह त्रुटि मिल रही थी, लेकिन मैंने इसे नीचे अवधारणा का उपयोग करके हल किया है।

  1. अपने इंटेलीज विचार समुदाय संस्करण को पुनरारंभ करें।
  2. उसके बाद, जावा के लिए कॉन्फ़िगरेशन सेट करने के लिए दाहिने हाथ के कोने पर जाएं।

यहाँ छवि विवरण दर्ज करें

  1. सभी मॉड्यूल के लिए कॉन्फ़िगरेशन सेटिंग चुनें। फिर कोड को फिर से चलाएँ। यह काम करेगा।

जावा को ठीक से कॉन्फ़िगर नहीं करने के कारण यह त्रुटि आती है।


2
मुझे खेद है, लेकिन 2. स्पष्ट नहीं है। मुझे "दाहिने हाथ का कोना नहीं मिला"
देउंज

1

कभी-कभी ऐसा हो सकता है क्योंकि आप अपनी आईडीई में प्लगइन के साथ ग्रैडल में कोटलिन प्लगइन के असंगत संस्करणों के साथ एक परियोजना का उपयोग करने की कोशिश कर रहे हैं। Org.jetbrains।

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें


0

आज मेरे पास आया।

मेरा मुद्दा यह था कि मेरे पास बहुत सारे टैब खुले थे (मुझे नहीं पता था कि वे खुले थे) उन पर स्रोत कोड के साथ।

यदि आप सभी टैब बंद कर देते हैं, तो शायद आप इन्टेलीजे को निर्भरता को सही ढंग से अनुक्रमित करने के लिए अप्रयुक्त करेंगे


वास्तव में यह कुल अर्थ है, कारण है कि आप -tt स्कोर प्राप्त करते हैं, क्योंकि आपने इसे अच्छी तरह से समझाया नहीं है। अगर ID1 में ID1 में दो प्रोजेक्ट खुले हैं तो एक को ग्रेडल के साथ और एक को मावेन के साथ कहें; परियोजना के चलने से अनसुलझे संदर्भ हो सकते हैं।
हा एस

0

कैश को अमान्य करना और एंड्रॉइड स्टूडियो में कोटलिन प्लगइन को अपडेट करना मेरे लिए ट्रिक था।


0

मुझे यह समस्या थी, क्योंकि मैं एक मल्टीप्लेयर लाइब्रेरी कॉन्फ़िगरेशन स्थापित करने की कोशिश कर रहा था।

मैंने "build.gradle" फ़ाइल से उनकी निर्भरता वाले सभी स्रोत सेट हटा दिए थे लेकिन "सामान्य" स्रोत सेट को रखा था।

मूल निवासी ठीक काम कर रहा था लेकिन जेवीएम निर्माण नहीं कर पाया और आपकी त्रुटि दिखाई गई।

अंत में, समाधान JVM के स्रोत सेट को हटाने के लिए नहीं था और न ही यह निर्भरताएं थीं


0

एक और बात जो मैं जोड़ना चाहूंगा वह यह है कि आपको ग्रेड का उपयोग करके प्रोजेक्ट को चलाने से पहले व्यू -> टूल विंडोज -> ग्रेड का चयन करना होगा।

यदि ग्रैडल का उपयोग करके प्रोजेक्ट बनाता है और सामान्य रूप से चलता है, लेकिन IntelliJ का उपयोग नहीं करता है, तो यह मामला हल कर सकता है।


0

मेरे पास यह मुद्दा था क्योंकि लिंटर प्रिंट कर रहा था कि मेरी वस्तु एक उदाहरण है Fooजबकि कंपाइलर इसके प्रकार को परिभाषित नहीं कर सकता है और विचार करता है कि यह एक Anyवस्तु की तरह था (यह मेरे मामले में अधिक जटिल था, लिंटर कोड के नीचे त्रुटि दिखा रहा है लेकिन विचार यहाँ है):

    class Foo {
        val bar: Int = 0
    }

    fun test(): Any {
        return Foo()
    }

    val foo = test()
    foo.bar // <-- Linter consider that foo is an Instance of Foo but not the compiler because it's an Any object so it show the error at compilation.

इसे ठीक करने के लिए मुझे अपना ऑब्जेक्ट डालना था:

val foo = test() as Foo

0

Android Studio अपडेट की जाँच करें और इंस्टॉल करें। यह समस्या को ठीक करता है।

यहाँ छवि विवरण दर्ज करें


-1

कभी-कभी समान परिस्थितियों में (मुझे नहीं लगता कि यह आपकी समस्या है क्योंकि आपका मामला बहुत सरल है) यह कोटलिन फ़ाइल पैकेज की जांच करने के लिए लायक है।

यदि आपके पास एक ही पैकेज के भीतर कोटलिन फ़ाइल है और वहां कुछ कक्षाएं लगाई हैं और पैकेज की घोषणा से चूक गए हैं तो यह IntelliJ के अंदर दिखता है कि आपके पास एक ही पैकेज में कक्षाएं हैं लेकिन पैकेज की परिभाषा के बिना IntelliJ आपको दिखाता है:

त्रुटि: (५, ५) कोटलिन: अनारक्षित संदर्भ: ...


-1

सबसे सरल समाधान:

टूल्स-> कोटलिन-> प्रोजेक्ट में कोटिन को कॉन्फ़िगर करें

Upvote अगर Usefull पाया।


कुछ भी नहीं करता है:
कोटलिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.