त्रुटि: org.jetbrains.kotlin नहीं मिल सका: kotlin-stdlib-jdk8: I.60 3 में 1.3.60-eap-25


81

Android के लिए Ionic 3 ऐप बनाते समय मुझे अचानक निम्न त्रुटि हो रही है।

Could not find org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.60-eap-25

हम एंड्रॉयड स्टूडियो से एक समाधान है यहाँ लेकिन उसके बाद मैं निम्नलिखित कोड के साथ मेरी build.gradle में बदल दिया मैं अभी भी त्रुटि हो रही है।

buildscript {
    repositories {
        ...
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }
}

allprojects {
    repositories {
        ...
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }
}

मेरे कॉर्डोवा को अपडेट करने और उपरोक्त समाधान को जोड़ने के बाद मेरी बिल्ड.ग्रेड फ़ाइल इस तरह दिखती है।

buildscript {
    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }

    dependencies {
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files

        classpath 'com.android.tools.build:gradle:3.3.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }

    //This replaces project.properties w.r.t. build settings
    project.ext {
      defaultBuildToolsVersion="28.0.3" //String
      defaultMinSdkVersion=19 //Integer - Minimum requirement is Android 4.4
      defaultTargetSdkVersion=28 //Integer - We ALWAYS target the latest by default
      defaultCompileSdkVersion=28 //Integer - We ALWAYS compile with the latest by default
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

फिर भी वही त्रुटि।


क्या आपने वास्तव में ...पहले से मौजूद अन्य रिपॉजिटरी को हटा दिया था ?
इयानहनिबल्के

नहीं, मैंने सिर्फ मावेन यूआरएल को बदल दिया है।
तापस मुखर्जी

तो क्या आपका build.gradle फ़ाइल वास्तव में ऐसा दिखता है जैसे कि यह वह नहीं है जो आपने पोस्ट किया है? क्योंकि आपका त्रुटि संदेश कह रहा है कि आपने रिपॉजिटरी को हटा दिया है जहां gradle:3.0.1स्थित है।
२०:०६

कृपया विवरण की जाँच करें। मैंने अपना बिल्ड.ग्रेड कोड जोड़ा है। मैंने सिर्फ url बदल दिया।
तापस मुखर्जी

आपको केवल नई लाइनों को जोड़ना चाहिए , किसी भी मौजूदा लाइनों की जगह नहीं। आपने किस लाइन को प्रतिस्थापित किया?
atहनुनीबल्लेके

जवाबों:


75

cordova-support-google-servicesकॉर्डोवा के लिए प्लगइन में समस्या है ।

यह प्लगइन build.gradleआज (24 अक्टूबर, 2019) जैसा दिखता है:

dependencies {
    classpath 'com.android.tools.build:gradle:+'
    classpath 'com.google.gms:google-services:4.2.0'
}

इस निर्भरता में और अधिक समस्या निहित है:

classpath 'com.android.tools.build:gradle:+'

यह निर्भरता को निर्दिष्ट करने का एक बहुत ही भंगुर तरीका है। यहाँ '+' चिन्ह का अर्थ है "रेपो में उपलब्ध सबसे नवीनतम संस्करण" लाना। यदि कोई नया संस्करण रेपो में प्रकाशित होता है, और यह बिल्ड को तोड़ता है, तो इस प्लगइन वाले सभी के पास अपनी परियोजनाएं टूटी हुई हैं। आज यही हुआ। टूटा हुआ संस्करण जो लाया जा रहा है com.android.tools.build:gradle:4.0.0। इसमें कुछ कोटलिन सामान की आवश्यकता होती है।

यही कारण है कि आपको अपनी परियोजना को मज़बूती से बनाने के लिए हमेशा निर्भरता को कम करने की आवश्यकता है। नए सामान पर कभी भरोसा न करें। यह निर्भरता ठीक उसी तरह संकलित करती है जैसे कल किया था:

classpath 'com.android.tools.build:gradle:3.5.1'

कॉर्डोवा या आयोनिक का उपयोग करने वालों के लिए, आप फ़ाइल में निर्भरता को फ्रीज करके प्रोजेक्ट बनाने में सक्षम होने के लिए एक त्वरित समाधान कर सकते हैं:

<projectroot>/platforms/android/cordova-support-google-services/<project>-build.gradle

हालांकि यह एक निश्चित समाधान नहीं है। यदि आप कॉर्डोवा के माध्यम से एंड्रॉइड प्लेटफॉर्म को फिर से इंस्टॉल करते हैं तो त्रुटि फिर से दिखाई देगी। प्रोजेक्ट मेंटेनर को या तो डिपेंडेंसी फ्रीज करनी चाहिए या फिर इसे 4.0.0 सपोर्ट करने के लिए फिक्स करना चाहिए। इस बीच में बस इस प्लगइन का एक निश्चित कांटा का उपयोग करें।


जैसा कि हम एक अस्थायी समाधान के बारे में बात कर रहे हैं, यह मेरे लिए सबसे तेज और व्याख्यात्मक समाधान है। धन्यवाद
तपस मुखर्जी

हालांकि हमारे पास एक सवाल है। यदि मेरा ऐप पहले से ही बनाया गया है और यह फोन में स्थापित है, तो क्या एप के प्रभाव पर निर्भरता टूटने में '+' का उपयोग कर सकते हैं? एक ऐप में बहुत सारी निर्भरताएं हैं और उन सभी के संस्करण को बनाए रखना मुश्किल है।
तापस मुखर्जी

1
मैं Phonegap बिल्ड का उपयोग करके अपना ऐप संकलित करता हूं; मुझे वही त्रुटि मिलती है, हालांकि मैंने प्लगइन 'कॉर्डोवा-सपोर्ट-गूगल-सर्विसेज' को शामिल नहीं किया है। कोई सुझाव? विशेष रूप से, मैं इसे अपने config.xml फ़ाइल में कैसे ठीक कर सकता हूं?
पेटकर

1
@peterk यहाँ फ़ोनगैप बिल्ड कम्युनिटी के
।adobe.com

3
प्लगइन कॉर्डोवा-सपोर्ट-गूगल-सर्विसेज ने पहले ही एक नया संस्करण ^ 1.3.2 जारी किया है, जहां वह समस्या को ठीक करने वाली निर्भरता से मुक्त करता है। इसे दर्शाने के लिए उत्तरों को अद्यतन किया जाना चाहिए।
le0diaz

30

EDIT 10/28/19:

कॉर्डोवा-सपोर्ट-गूगल-सर्विसेज को आज संस्करण 1.3.2 में अपडेट किया गया था जो क्लासपाथ को बदलता है classpath 'com.android.tools.build:gradle:+'

सेवा

classpath 'com.android.tools.build:gradle:3.+'

जो कोटलिन त्रुटि को ठीक करने के लिए लगता है

मूल उत्तर

मैं निम्नलिखित करके सफलतापूर्वक निर्माण करने के लिए मेरा हो गया:

मैंने प्लेटफ़ॉर्म-> एंड्रॉइड-> कॉर्डोवा-सपोर्ट-गूगल-सर्विसेज-> myAppName-build.gradle संपादित किया

और बदल गया

maventCentral()

सेवा

    maven { url "https://maven.google.com" }
    maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }

उस कोटलिन त्रुटि को हल किया तो मुझे एक अलग त्रुटि मिल रही थी जिसे मैंने बदलकर हल किया

classpath 'com.google.gms:google-services:4.2.0'

सेवा

classpath 'com.google.gms:google-services:4.1.0'

यह तो सफलतापूर्वक बनाया गया।


बदलना पड़ा << प्लेटफ़ॉर्म / Android / app / build.gradle में doLast, stackoverflow.com/a/55793096/2393822 के
umadesign

2
@JimBergman I को आधिकारिक एंड्रॉइड स्टूडियो वेबसाइट से कोटलिन URL मिला: संदर्भ androidstudio.googleblog.com/2019/10/…
DanielRead

1
नीचे दिए गए भाग को शीर्षक दें, "ज्ञात मुद्दा
कोटलिन

@DanielRead धन्यवाद अब मैं देख रहा हूँ। अब भी नहीं लगता कि bintray.com में फ़ाइलों को संदर्भित करना समस्या को हल करने का तरीका है। ऊपर मिस्टर स्मिथ द्वारा समाधान बेहतर है।
जिम बर्गमैन

1
प्लगइन अपडेट करने के लिए, रन करें: cordova plugin rm cordova-support-google-services --force && cordova plugin add cordova-support-google-services
क्लेमेंस ज़्लेप्टनिग

29

यहाँ समाधान है।

समस्या वास्तव में मावेन रिपॉजिटरी ( यहाँ ) थी, लेकिन मुद्दा बिल्ड.ग्रेड के साथ था। कॉर्डोवा -सपोर्ट-गूगल-सर्विसेज प्लगइन से, इसलिए मैंने आवश्यक लाइन जोड़ी और सब कुछ ठीक है अब, मैंने पहले ही एक पुल बना लिया है मूल रेपो ( यहां ) के लिए अनुरोध । लेकिन इस बीच आप वही कर सकते हैं जो मैंने किया था, बस पैकेज में प्रतिस्थापित करें मेरे रेपो के साथ वर्तमान वर्सोन को लिखें:

इससे पहले:

...
"cordova-support-google-services": "^1.3.1",
...

उपरांत:

...
"cordova-support-google-services": "https://github.com/LuisEGR/cordova-support-google-services.git",
...

उसके बाद आपको निम्न करना होगा:

  • फ़ोल्डर प्लेटफ़ॉर्म और प्लगइन्स निकालें
  • Daud npm install

यह एक अस्थायी समाधान है जबकि मुख्य रेपो के लिए अनुरोध स्वीकार हो जाता है और एनपीएम पैकेज अपडेट हो जाता है

और यह बात है, अब आप फिर से अपनी परियोजना का निर्माण कर सकते हैं।


मैं Ionic 4 का उपयोग कर रहा हूं, और कुछ प्लगइन्स की आवश्यकता होती है cordova-support-google-services, अगर आपके पास यह आपके पैकेज में नहीं है। तो त्रुटि किसी अन्य प्लगइन के साथ हो सकती है, यदि ऐसा है तो कृपया पैकेज जोड़ें। अगर हमें पता चल गया है तो हम पता लगा सकते हैं कि कौन सा है मुसीबत।


अद्यतन 24 / अक्टूबर:

मैंने अपने रेपो में समाधान को बदल दिया है जैसा कि आप में से कई ने सुझाव दिया है, अब समाधान केवल निर्भरता को ठीक करने में कॉन्स्टिन करता है: से: com.android.tools.build:gradle:+ to classpath com.android.tools.build:gradle। 3. + , यह पहले से ही मेरे रेपो में है यदि आप देखना चाहते हैं कि क्या बदला है


आमतौर पर किसी को उस रेपो पर कुछ मंजूर करने में कितना समय लगता है?
एंडीसौस

7

मेरी परियोजना में मैं इस तरह तय करता हूं। (कोटलिन में मेरी परियोजना)

buildscript{

    repositories {
         google()
         jcenter()
         ......
         maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }

}

allprojects {
    repositories {
         google()
         jcenter()
         ......
         maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
   }
}

6

आयनिक v3 और कॉर्डोवा के लिए समाधान

@ मिस्टर स्मिथ हल ने मेरी समस्या हल कर दी

आपको फाइल पर जाना होगा

platforms/android/cordova-support-google-services

फिर

बदलने के

classpath 'com.android.tools.build:gradle:+'

द्वारा

classpath 'com.android.tools.build:gradle:3.5.1'

@ स्थायी समाधान मैंने पाया है

setup kotlin in your system :)

यह काम करता हैं। धन्यवाद। मुझे लगता है कि हम build.gradle फ़ाइल से संस्करण के समान संस्करण सेट कर सकते हैं
गुयेन ट्रान

1
@NguyenTran मुझे लगता है कि अगर आप नवीनतम ग्रैडल का उपयोग करना चाहते हैं, तो एंड्रॉइड स्टूडियो के साथ कोटलिन को आपके सिस्टम में स्थापित करना सबसे उन्नत और सबसे अच्छा समाधान है, अन्यथा, अपने प्रोजेक्ट द्वारा समर्थित पुराने संस्करण के लिए छड़ी करें। या ईओण v3 के लिए सबसे अच्छा प्रवण समर्थन की तलाश करें।
सईद मोहम्मद अली

5

@ मिस्टरस्मिथ के सुझाव पर अनुवर्ती कार्रवाई के लिए एक और अस्थायी सुधार के रूप में , लॉक को फिर से लागू करने के लिए एक हुक का उपयोग करें:

<hook src="scripts/fix_android_dep.sh" type="after_platform_add"/>

इस अत्यधिक कृमि बैश कोड के साथ:

#!/usr/bin/env bash

## temporary fix for android studio EAP issue
## SOURCE: https://stackoverflow.com/a/58536638/56545
if [ -d "platforms/android/cordova-support-google-services" ]; then
  file="platforms/android/cordova-support-google-services/app-build.gradle"
  from="classpath 'com.android.tools.build:gradle:+'"
  to="classpath 'com.android.tools.build:gradle:3.5.1'"

  change=`sed "s/$from/$to/" < "$file"`
  echo "$change" > "$file"
fi

1
बदलने के बाद मेरे लिए काम किया app-build.gradleकरने के लिए %MY_APP_NAME%-build.gradle। धन्यवाद!
अलेक्जेंडर झिनचुक

3

मुझे maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }शीर्ष-स्तर build.gradleऔर appमॉड्यूल में दोनों को जोड़ना था build.gradle। दोनों मामलों में buildscripts.repositoriesऔर में दोनोंallprojects.repositories


2

उपरोक्त में से किसी ने भी मेरे लिए काम नहीं किया। मैंने Google- सेवाओं के प्लगइन को हटाकर इसे समाप्त कर दिया।

cordova plugin rm cordova-support-google-services cordova plugin add cordova-support-google-services


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