ग्रेडेल: परियोजना के एक से अधिक प्रकार: myLib उपभोक्ता विशेषताओं से मेल खाता है


81

एक लाइब्रेरी जो मैंने लिखी है , से myLibउपयोग करता RemoteMessageहै Firebase, ऐप खुद भी उपयोग करता है Firebase

श्लेष का प्रयोग 4.7। 4.4.1 में भी इसका सामना करना पड़ रहा है।

इसे कैसे जोड़ेंगे?

project.gradle

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

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

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

app.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.test.app"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }

    dexOptions {
        preDexLibraries = false
        jumboMode = false
        javaMaxHeapSize "2048M"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    productFlavors {
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.android.support:appcompat-v7:27.1.1'

    implementation 'com.google.android.gms:play-services-gcm:12.0.1'
    implementation 'com.google.android.gms:play-services:12.0.1'
    implementation 'com.google.firebase:firebase-core:12.0.1'
    implementation 'com.google.firebase:firebase-messaging:12.0.1'
    implementation 'com.google.firebase:firebase-crash:12.0.1'

    implementation project(":myLib")
}

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

myLib.gradle

apply plugin: 'com.android.library'

android {
    compileSdkVersion 27



    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.android.support:appcompat-v7:27.1.1'

    implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.2'
    implementation 'com.j256.ormlite:ormlite-core:5.0'
    implementation 'com.j256.ormlite:ormlite-android:5.0'

    implementation 'com.google.firebase:firebase-messaging:12.0.1'
}

से त्रुटि उत्पादन testApp\myLib> gradle clean assembleDebugऔरtestApp\app> gradle clean assembleDebug

परियोजना के एक से अधिक प्रकार: myLib उपभोक्ता विशेषताओं से मेल खाता है:

  • कॉन्फ़िगरेशन ': myLib: debugApiElements' वैरिएंट android-aidl:
    • पाया विरूपण साक्ष्य 'android-aidl' लेकिन आवश्यक नहीं था।
    • आवश्यक com.android.build.api.attributes.BuildTypeAttr 'debug' और संगत मान 'डीबग' मिला।
    • पाया कॉम .android.build.api.attributes.VariantAttr 'डीबग' लेकिन आवश्यक नहीं था।
    • आवश्यक com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' और संगत मान 'Aar' पाया।
    • आवश्यक org.gradle.usage 'java-api' और संगत मान 'java-api'।
  • कॉन्फ़िगरेशन ': myLib: debugApiElements' वैरिएंट एंड्रॉइड-क्लास:
    • पाया विरूपण साक्ष्य 'android-classes' लेकिन आवश्यक नहीं था।
    • आवश्यक com.android.build.api.attributes.BuildTypeAttr 'debug' और संगत मान 'डीबग' मिला।
    • पाया कॉम .android.build.api.attributes.VariantAttr 'डीबग' लेकिन आवश्यक नहीं था।
    • आवश्यक com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' और संगत मान 'Aar' पाया।
    • आवश्यक org.gradle.usage 'java-api' और संगत मान 'java-api'।
  • कॉन्फ़िगरेशन ': myLib: debugApiElements' वैरिएंट Android-मैनिफ़ेस्ट:
    • पाया विरूपण साक्ष्य 'Android- प्रकट', लेकिन आवश्यक नहीं था।
    • आवश्यक com.android.build.api.attributes.BuildTypeAttr 'debug' और संगत मान 'डीबग' मिला।
    • पाया कॉम .android.build.api.attributes.VariantAttr 'डीबग' लेकिन आवश्यक नहीं था।
    • आवश्यक com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' और संगत मान 'Aar' पाया।
    • आवश्यक org.gradle.usage 'java-api' और संगत मान 'java-api'।
  • कॉन्फ़िगरेशन ': myLib: debugApiElements' वैरिएंट एंड्रॉइड-रेंडरस्क्रिप्ट:
    • पाया विरूपण साक्ष्य 'android-renderscript' लेकिन आवश्यक नहीं था।
    • आवश्यक com.android.build.api.attributes.BuildTypeAttr 'debug' और संगत मान 'डीबग' मिला।
    • पाया कॉम .android.build.api.attributes.VariantAttr 'डीबग' लेकिन आवश्यक नहीं था।
    • आवश्यक com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' और संगत मान 'Aar' पाया।
    • आवश्यक org.gradle.usage 'java-api' और संगत मान 'java-api'।
  • कॉन्फ़िगरेशन ': myLib: debugApiElements' वैरिएंट जार:
    • पाया विरूपण साक्ष्य 'जार' लेकिन आवश्यक नहीं था।
    • आवश्यक com.android.build.api.attributes.BuildTypeAttr 'debug' और संगत मान 'डीबग' मिला।
    • पाया कॉम .android.build.api.attributes.VariantAttr 'डीबग' लेकिन आवश्यक नहीं था।
    • आवश्यक com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' और संगत मान 'Aar' पाया।
    • आवश्यक org.gradle.usage 'java-api' और संगत मान 'java-api'।

12
Google सेवा 3.2.1 का उपयोग करके इसे ठीक करता है।
पॉल वोइत्सेक

1
आपने मेरी जान बचाई @PaulWoitaschek
NullPointer

2
यह - यह com.google.gms के साथ एक बग प्रतीत होता है: Google-सेवाएं: 3.3.0। 3.2.1 पर
अपग्रेड करना

1
Google सेवा अब 4.0.0 में अपग्रेड हो गई है। डेवलपर्स
पीटर झाओ

जवाबों:


86

google-servicesGradle प्लगइन Google Play सेवाएं और Firebase साथ काम करने के लिए बना है 15+, लेकिन आप संस्करण के साथ यह प्रयोग कर रहे हैं 12.0.1

समाधान या तो है:

  • संस्करण के लिए अपनी Play Services और Firebase निर्भरता को अपग्रेड करें 15+ (ध्यान दें कि उनके पास अब अलग संस्करण हैं)
  • अपने google-servicesअपग्रेड को 3.3.0तब तक के लिए रद्द करें जब तक आप अपग्रेड नहीं कर लेते हैं 15+, अर्थात् संस्करण के लिए ग्रेड प्लग को अपग्रेड करते हैं 3.2.1

EDIT 1 : मल्टीमॉडल ऐप्स में उपयोग करने के बारे में एक ज्ञात समस्या हैgoogle-services 3.3 । यही कारण है कि में डाउनग्रेड साधन google-servicesकरने के लिए 3.2.1है कि सुधारों को बग जारी किया गया है एक नया संस्करण तक अपने ही एकमात्र विकल्प हो सकता है।

EDIT 2 : उपर्युक्त बग 4.0.1को google-servicesग्रेडल प्लगइन के संस्करण में तय किया गया है ! (और संस्करण 4.0.2कुछ मामलों में हुआ एक NPE भी ठीक करता है)

BTW, आपको FCM में जाना चाहिए। GCM भविष्य में बहुत दूर नहीं काम करना बंद कर देगा।


Ionic 3 पर मैंने कैसे एकीकरण किया है? धन्यवाद!
विल्फ्रेडोनॉयला

1
@wilfredonoyola यह ग्रेडल के साथ काम करता है। यदि आप अपने आयोनिक प्रोजेक्ट के साथ ग्रेडेल का उपयोग करते हैं, तो, यह ठीक उसी तरह काम करता है। अन्यथा, यह सिर्फ संबंधित नहीं है।
लुई सीएडी

हां, आयनिक 3 ग्रेडल से संबंधित है। वर्तमान में, जब मैं एंड्रॉइड पर एक नया निर्माण करता हूं, तो मैं कई बग रखता हूं।
wilfredonoyola

@wilfredonoyola तब, बस अपना प्रश्न पोस्ट करें यदि मेरा उत्तर और आपकी खोजों को आपके बिल्ड मुद्दों को हल करने के लिए पर्याप्त नहीं है
लुई सीएडी

28

Google-सेवाओं का उपयोग करने पर मुझे यह त्रुटि मिली: 3.3.0।

में डाउनग्रेड classpath 'com.google.gms:google-services:3.2.1'अपनी परियोजना .gradle में।

यह मुद्दे को हल करना चाहिए।

अद्यतन: यह शायद वर्तमान संस्करणों में नहीं होना चाहिए।


2
मैं 3.3.0 में अपडेट होने के बाद भी इसमें भाग गया, लेकिन हम डाउनग्रेड नहीं कर सकते क्योंकि नए प्ले-सर्विसेज / फायरबेस संस्करण> = 15. के लिए इसकी आवश्यकता है। देखें android-developers.googleblog.com/2018/05/…
hardysim

1
@ भारद्मिम आपको फायरबेस संस्करण का उपयोग करने में सक्षम होना चाहिए> = 15 3.2.1 के साथ
श्री

7

3.3.1 में अपग्रेड करते समय इसी तरह के मुद्दे का सामना करना पड़ा

इसे 3.2.1 पर अपग्रेड करके तय किया

हम 3.2.1 के साथ फायरबेस संस्करण> = 15 का उपयोग कर सकते हैं


1

नीचे दिए गए चरणों ने मेरे लिए काम किया ---

  1. Android / build.gradle फ़ाइल पर जाएं।
  2. jcentre()विधि की खोज करें ।
  3. jcenter()इसके ब्लॉक के अंदर नीचे की तरफ सभी तरीकों को शिफ्ट करें ।

मेरे लिए भी काम किया। अविश्वसनीय bel
डेविड लेउलिटे

0

मुझे पिछले कुछ दिनों में इसी तरह के मुद्दे का सामना करना पड़ा।

implementation 'com.google.android.gms:play-services-auth:15.0.0'
implementation 'com.google.firebase:firebase-messaging:15.0.0'

समाधान या तो डाउनग्रेड करना था

implementation 'com.google.android.gms:play-services-auth:12.0.1'
implementation 'com.google.firebase:firebase-messaging:12.0.1'

या Google क्लाउड सेवाओं को छोड़ने और FCM को पूरी तरह से अपग्रेड करने पर विचार करें

ध्यान दें कि उनके पास अलग-अलग संस्करण संख्याएं हैं आप इसे यहां देख सकते हैं

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