8

लंबी कहानी कम हो गई: मैं Google Firebase का उपयोग करने के लिए Azure मोबाइल ऐप सेवाओं का उपयोग करने से एंड्रॉइड ऐप बदल रहा हूं। जावास्क्रिप्ट के लिए सेटअप पाने के लिए फायरबेस वास्तव में आसान और सीधे आगे था लेकिन मुझे एंड्रॉइड सेटअप प्राप्त करने में अंतहीन समस्याएं आई हैं।अज्ञात 'लाइब्रेरी वेरिएंट्स' संपत्ति - ग्रैडल सिंक नहीं होगा

मेरे ऐप में तीन मॉड्यूल हैं: पूर्ण, लाइट और एक तीसरा मॉड्यूल जो लाइब्रेरी के रूप में कार्य करता है। मैं ऐप सेट अप करने की कोशिश कर रहा हूं ताकि पूर्ण संस्करण में फ़ायरबेस समर्थन हो और मैंने एंड्रॉइड स्टूडियो में निर्मित सहायक का उपयोग करके ऐसा किया। ऐसा करने के बाद यह निर्माण नहीं करेगा क्योंकि जेएसओएन फ़ाइल जो जोड़ा गया था केवल पूर्ण संस्करण पैकेज नाम शामिल था। मैंने फायरबेस कंसोल में ऐप के 3 संस्करण तैयार किए और मैन्युअल रूप से जेएसओएन फ़ाइल को प्रोजेक्ट (net.gptiming, net.gptiming.full और net.gptiming.library) में जोड़ दिया। ऐसा लगता है कि यह काम करता है - मैं फायरबेस पुस्तकालयों और कार्यक्रम का निर्माण कर सकता हूं।

मुझे मिली अगली समस्या यह थी कि फायरबेस प्रारंभ करने में विफल रहा था - Google और stackoverflow के कई घंटों के बाद मुझे पता चला कि यह मेल नहीं खाए गए पुस्तकालयों के कारण हो सकता है। मेरा प्रारंभिक चरण एंड्रॉइड स्टूडियो (2.3.2 तक) और नवीनतम Google रिपॉजिटरीज़ और बिल्ड टूल्स अपडेट करना था।

अब यह एक और मुद्दा सामने आया - एक जिसे मैं कहीं भी ऑनलाइन नहीं ढूंढ सकता।

"Could not get unknown property 'LibraryVariants' for object of type com.android.build.gradle.LibraryExtension" 

यह त्रुटि पुस्तकालय मॉड्यूल Gradle निर्माण फ़ाइल जो निम्नलिखित शामिल हैं में दिखा रहा है::

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion rootProject.compileSdkVersion 
    buildToolsVersion rootProject.buildToolsVersion 
    buildToolsVersion '23.0.2' 
} 

dependencies { 
    compile 'com.google.code.gson:gson-parent:2.7' 
    compile 'com.google.firebase:firebase-core:10.2.1' 
    compile 'com.google.firebase:firebase-database:10.2.1' 
    compile 'com.google.firebase:firebase-auth:10.2.1' 
} 

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

परियोजना Gradle फ़ाइल इस प्रकार है के रूप में:

Gradle निम्न त्रुटि के कारण सिंक नहीं होगा

apply plugin: 'com.android.application' 

dependencies { 
    compile project(':gptiming-gptiming') 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.google.firebase:firebase-database:10.2.1' 
    compile 'com.google.firebase:firebase-auth:10.2.1' 
} 

android { 
    compileSdkVersion rootProject.compileSdkVersion 
    buildToolsVersion rootProject.buildToolsVersion 

    if (rootProject.storeFilePath) { 
     signingConfigs { 
      release { 
       storeFile file(rootProject.storeFilePath) 
       storePassword rootProject.storePassword 
       keyAlias rootProject.keyAlias 
       keyPassword rootProject.keyPassword 
      } 
     } 
     buildTypes { 
      release { 
       signingConfig signingConfigs.release 
      } 
     } 
    } 
    buildToolsVersion '25.0.0' 
} 
apply plugin: 'com.google.gms.google-services' 
0:
buildscript { 
    repositories { 
     mavenCentral() 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.3.0' 
     classpath 'com.google.gms:google-services:3.1.0' 
    } 
} 

allprojects { 
    repositories { 
     mavenCentral() 
     jcenter() 
    } 
} 


ext { 
    compileSdkVersion = 19 
    buildToolsVersion = "23.0.2" 
    storeFilePath = System.getenv('STORE_FILE') 
    storePassword = System.getenv('STORE_PASSWORD') 
    keyAlias = System.getenv('KEY_ALIAS') 
    keyPassword = System.getenv('KEY_PASSWORD') 
} 

और यहाँ पूर्ण संस्करण मॉड्यूल फ़ाइल है

अब तक मैंने ग्रैडल संस्करण को 2.3 में बदलने का प्रयास किया है, हालांकि एंड्रॉइड स्टूडियो 2.3.2 पुराने ग्रैडल संस्करण का समर्थन नहीं करेगा। मैंने ऊपर दिखाए गए लोगों को बिल्ड टूल्स संस्करणों को बदलने का भी प्रयास किया है, जिससे कोई फर्क नहीं पड़ता। एंड्रॉइड स्टूडियो ने समस्या पर कोई अतिरिक्त मदद नहीं की।

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

मुझे यह कहना चाहिए कि एंड्रॉइड स्टूडियो और संबंधित टूल्स के संस्करण को अपडेट करने से पहले मुझे इस पुस्तकालय संरचना में कोई समस्या नहीं थी - हालांकि यह फ़ायरबेस पुस्तकालय के मुद्दों से मुखौटा हो सकता था। ऐप ने इन परिवर्तनों से पहले Azure के साथ काम किया

+2

आप केवल डाल 'प्लगइन लागू करना चाहिए: आवेदन में और मॉड्यूल में ही नहीं 'com.google.gms.google-services'' । – riteshakya037

+0

@ riteshakya037, क्या आप आगे बता सकते हैं? क्या आप वर्णन करते हैं कि क्या कोई दस्तावेज है? –

+0

वही प्रश्न: https://stackoverflow.com/questions/44884400/unknown-property-libraryvariants-in-build-gradle और https: // stackoverflow।कॉम/प्रश्न/45092308/असफल-टू-लागू-प्लगइन-कॉम-google-gms-google-services (उत्तरार्द्ध का समाधान है) –

उत्तर

1

मुझे अपने लाइब्रेरी मॉड्यूल के साथ एक ही समस्या थी और इसे हलचल और Google-सेवा संस्करणों को अपडेट करने का हल किया गया।

// Top-level build file where you can add configuration options common to all sub-projects/modules. 
buildscript { 
    repositories { 
     google() 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:3.0.0' 
     classpath 'com.google.gms:google-services:3.1.1' 
     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     google() 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 
संबंधित मुद्दे