6

मैं 4 मॉड्यूल के साथ परियोजना:गूगल सेवाओं प्लगइन com.google.android.gms या com.google.firebase के लिए किसी भी संस्करण का पता नहीं लगा सकता है - अजीब व्यवहार

  • एप्लिकेशन (मुख्य)
  • आम -lib
  • सी
  • डी

मैं सही ढंग से के रूप में स्थापित किया है firebase यहाँ कहा गया है: https://firebase.google.com/docs/android/setup

मेरी एप्लिकेशन मॉड्यूल में मैं किसी भी अतिरिक्त पुस्तकालयों, केवल मॉड्यूल निर्भरता का उपयोग नहीं करते:

dependencies { 
    debugCompile project(path: ':common-lib', configuration: 'debug') 
    releaseCompile project(path: ':common-lib', configuration: 'release') 
} 

मेरी आम-लिब मॉड्यूल मैं उपयोग firebase पुस्तकालयों में:

dependencies { 
    (...) 
    compile 'com.google.firebase:firebase-core:11.2.0' 
    compile 'com.google.firebase:firebase-crash:11.2.0' 
    compile 'com.google.firebase:firebase-messaging:11.2.0' 
    compile 'com.google.firebase:firebase-config:11.2.0' 
    compile 'com.google.firebase:firebase-ads:11.2.0' 
} 

में यह स्थिति प्रोजेक्ट संकलित करता है लेकिन मुझे संदेश मिला:

google-services plugin could not detect any version for com.google.android.gms or com.google.firebase, default version: 9.0.0 will be used. 
please apply google-services plugin at the bottom of the build file. 

दिलचस्प है जब मैं अपने ऐप मॉड्यूल में आम-lib firebase निर्भरताओं की प्रतिलिपि बनाता हूं तो संदेश गायब हो जाता है।

क्या यह एक बग है? क्या मैंने कुछ गलत किया? क्या मेरी एप्लिकेशन आउटपुट फ़ाइल में फायरबेस पुस्तकालयों का उचित 11.2.0 संस्करण है या संदेश 9.0.0 कहते हैं?


संपादित

परियोजना build.gradle:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.3.3' 
     classpath 'com.google.gms:google-services:3.1.0' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
     maven { 
      url 'https://maven.google.com' 
      // Alternative URL is 'https://dl.google.com/dl/android/maven2/' 
     } 
     maven { url 'https://jitpack.io' } 
    } 
} 

एप्लिकेशन मॉड्यूल build.gradle

apply plugin: 'com.android.application' 

android { 
    (...) 
} 


dependencies { 

    debugCompile project(path: ':common-lib', configuration: 'debug') 
    debugTestCompile project(path: ':common-lib', configuration: 'debugTest') 
    releaseCompile project(path: ':common-lib', configuration: 'release') 

} 

apply plugin: 'com.google.gms.google-services' 

आम-लिब moudle build.gradle

apply plugin: 'com.android.library' 


android { 
    (...) 
} 
dependencies { 
    (...) 
    //firebase 
    compile 'com.google.firebase:firebase-core:11.2.0' 
    compile 'com.google.firebase:firebase-crash:11.2.0' 
    compile 'com.google.firebase:firebase-messaging:11.2.0' 
    compile 'com.google.firebase:firebase-config:11.2.0' 
    compile 'com.google.firebase:firebase-ads:11.2.0' 
} 
+0

ओह, मुझे लगता है कि आपको इसे सामान्य-lib पर रखना चाहिए। या किसी भी वास्तव में फ़ायरबेस निर्भरता –

+0

@ cricket_007 जब मैं जोड़ रहा हूं "प्लगइन लागू करें: 'com.google.gms.google-services'" मेरे सामान्य-lib में, मुझे त्रुटि मिलती है: "अज्ञात संपत्ति नहीं मिल सका 'लाइब्रेरी वेरिएंट 'com.android.build.gradle.LibraryExtension टाइप ऑब्जेक्ट के लिए। " – AppiDevo

+0

@AppiDevo क्या आपने ग्रेडल ऐप का उपयोग करके ग्रेडल डिप्लेेंसी पेड़ देखने की कोशिश की है: निर्भरता कमांड? –

उत्तर

0

आप इस जोड़ने की कोशिश की है: Gradle फ़ाइल के रूट स्तर में

apply plugin: 'com.google.gms.google-services'? तो

implementation "com.google.firebase:firebase-core:$firebase_version" 
implementation "com.android.support:appcompat-v7:$support_version" 

अब मैं अपने app में और मेरे common-lib (library) मॉड्यूल में ऊपर निर्भरता है:

+0

फसल हो गया हां, मेरे पास यह ऐप मॉड्यूल build.gradle फ़ाइल के नीचे है (जिसमें मेरे पास फायरबेस निर्भरता नहीं है) – AppiDevo

+0

अपनी ग्रेडल फ़ाइल पेस्ट करें सुनिश्चित करने के लिए – Vyacheslav

+0

उद्धरण: फिर, अपने मॉड्यूल में ग्रिड फ़ाइल (आमतौर पर ऐप/build.gradle), ग्रैडल प्लगइन को सक्षम करने के लिए फ़ाइल के निचले हिस्से में लागू प्लगइन लाइन जोड़ें: – Vyacheslav

0

मैं अपने app (main) मॉड्यूल निर्भरता में जोड़कर इस समस्या का समाधान। मैंने $firebase_version और $support_version भी जोड़ा ताकि रखरखाव आसान हो।चर परियोजना gradle.build में रखा जाता है:

buildscript { 

    ext { 
     firebase_version = '11.8.0' 
     support_version = '26.1.0' 
    } 
    (...) 
} 

समस्या दिखाई देती है क्योंकि गूगल सेवाओं प्लगइन निर्भरता जाँच करता है और एप्लिकेशन Gradle फ़ाइल में नहीं मिल रहा है। लेकिन यह पुस्तकालय निर्भरता जांच नहीं करता, भले ही आप इसे स्पष्ट रूप से implementation बदलते api करने से बेनकाब:

आम-लिब gradle.build:

api "com.google.firebase:firebase-core:$firebase_version" 
api "com.android.support:appcompat-v7:$support_version" 

यह अभी भी काम नहीं करता।


  • अधिक how apply plugin: 'com.google.gms.google-services' works के बारे में
  • आप भी बच सकते हैं आप एंड्रॉयड स्टूडियो 3 और Gradle 4 की ओर पलायन करते हैं "एंड्रॉयड निर्भरता '..' संकलन (..) और रनटाइम के लिए अलग संस्करण (है ..) क्लासपाथ "त्रुटि अगर आप अपने ऐप मॉड्यूल में अतिरिक्त निर्भरता जोड़ते हैं। More about this
संबंधित मुद्दे