सवाल कक्षा "com.google.firebase.provider.FirebaseInitProvider" नहीं मिला?


मुझे ऐप लॉन्च पर नीचे अपवाद मिल रहा है।

java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.vfirst.ifbagro-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.vfirst.ifbagro-1, /vendor/lib, /system/lib]]
at android.app.ActivityThread.installProvider(ActivityThread.java:4993)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4596)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4536)
at android.app.ActivityThread.access$1300(ActivityThread.java:149)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5214)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.vfirst.ifbagro-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.vfirst.ifbagro-1, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.app.ActivityThread.installProvider(ActivityThread.java:4978)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4596) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4536) 
at android.app.ActivityThread.access$1300(ActivityThread.java:149) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:5214) 
at java.lang.reflect.Method.invokeNative(Native Method) 

यहां ऐप लेवल build.gradle है

apply plugin: 'com.android.application'
apply plugin: 'android-apt' 

android {
compileSdkVersion 24
buildToolsVersion "24.0.1"

defaultConfig {
    applicationId "com.vfirst.ifbagro"
    minSdkVersion 17
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

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


compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:support-v4:24.2.1'
compile 'com.google.android.gms:play-services-gcm:9.4.0'
compile 'com.google.android.gms:play-services-location:9.4.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.firebase:firebase-messaging:9.4.0'
compile 'com.google.android.gms:play-services:9.4.0'
testCompile 'junit:junit:4.12'
}

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

यह मेरा आवेदन स्तर build.gradle है

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
    jcenter()
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
    classpath 'com.google.gms:google-services:3.0.0'
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    classpath 'com.google.gms:google-services:3.0.0'

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

allprojects {
repositories {
    jcenter()
}
}

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

इस मुद्दे को कैसे हल करें?


90
2017-10-03 06:20


मूल


के संभावित डुप्लिकेट stackoverflow.com/questions/37312103/... - Jay Rathod RJ
मैंने पहले से ही उन सभी उत्तरों की कोशिश की थी। कुछ भी काम नहीं करता है - WISHY
आपके मैनिफेस्ट या google-services.json में कोई समस्या प्रतीत होती है, सुनिश्चित करें कि वे सही हैं। क्या आप अपनी मेनिफेस्ट फाइल पोस्ट कर सकते हैं? - Rushi M Thakker
क्या आपने मल्टीडेक्स के लिए आवश्यक परिवर्तन परिवर्तन किया था:android:name="android.support.multidex.MultiDexApplication"? यदि मल्टीडेक्स सही तरीके से कॉन्फ़िगर किया गया है तो आप इस तरह ऐप इनिट के दौरान लॉगकैट संदेश देखेंगे: I/MultiDex: install done। - Bob Snyder
तत्काल रन की जांच करें यदि हां, तत्काल रन अक्षम करें। - Prathap Badavath


जवाब:


मुझे एक ही त्रुटि थी और मैंने इसे मल्टीडेक्स के साथ हल किया, जैसा कि इस लिंक पर वर्णित है: https://developer.android.com/studio/build/multidex.html


92
2017-10-03 12:27



आप आश्चर्यजनक हैं <3 धन्यवाद, आपने मेरा दिन बचाया <3 - Mohamed Atef
अरे यह अपवाद: इसके कारण: java.lang.ClassNotFoundException: कक्षा "com.google.firebase.provider.FirebaseInitProvider" नहीं मिला मल्टीडेक्स को सक्षम करने के साथ कुछ भी नहीं है, वास्तव में यदि आप प्रश्नों को देखते हैं .gradle multiDexEnabled सक्षम है! - Jorgesys
यह त्रुटि मल्टीडेक्स से नहीं है, उसने अभी तक सभी चरणों को पूरा नहीं किया है, क्योंकि आप उसकी अभिव्यक्ति या उसकी मुख्य कक्षा नहीं देख सकते हैं। - AMAN77
यह काम किया। मेरे पास मेरी ग्रेडल फ़ाइल में मल्टीडेक्स सक्षम था, लेकिन एंड्रॉइड मैनिफेस्ट भाग गायब था! - krikara
सबसे अच्छा आदमी ... धन्यवाद - Surendar D


मुझे भी एक ही समस्या का सामना करना पड़ा और आखिरकार इसे अक्षम करके हल किया गया Instant Run एंड्रॉइड स्टूडियो में।

सेटिंग्स → बिल्ड, निष्पादन, परिनियोजन → त्वरित रन और तत्काल रन सक्षम करें अनचेक करें


61
2018-03-24 11:46



मेरे लिए भी ऐसा। यह समस्या का कारण था - मल्टीडेक्स या अन्य उत्तरों में से कोई नहीं। - user3562927
हम .. हाँ तुम सही हो - Shylendra Madda
हाँ, यह मेरे लिए भी काम किया - Mohammed Tawfik
ऐसा लगता है कि एंड्रॉइड स्टूडियो 2.3 के साथ यह एक मुद्दा है। तत्काल रन को अक्षम करने से मेरे लिए भी काम किया गया, लेकिन यह आदर्श समाधान नहीं है :( - Tharaka Devinda
मुझे एएस 3.1 और एमुलेटर एपीआई 26 के साथ एक ही समस्या का सामना करना पड़ा। इससे पहले कि मुझे एपीआई 1 9 -25 के साथ कोई समस्या नहीं आई है। तत्काल रन को अक्षम करने से वास्तव में मुझे ऐप चलाने दिया जाता है। धन्यवाद। - Marcin Jedynak


Build.gradle (मॉड्यूल: ऐप) फ़ाइल में, नीचे दिए गए कोड को डिफ़ॉल्ट रूप से सम्मिलित करें कॉन्फिग:

  defaultConfig {
        applicationId "com.***.****"
minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

और निर्भरताओं में डालें:

compile 'com.android.support:multidex:1.0.1'

फिर प्रकट करने के लिए कोड जोड़ें:

<application 
    android:name="android.support.multidex.MultiDexApplication"

37
2018-01-31 07:54



मैं कोशिश कर रहा हूं, अगर यह काम करेगा तो मैं वोट और टिप्पणी करूंगा - Kamil Ibadov
तुम मेरा समय बचाओ! - ali shekari
अच्छा .. मेरी समस्या हल हो गई - Surendar D


मुझे अपने (यूट्यूब प्लेयर प्रोजेक्ट) में एक ही समस्या थी ... और निम्नलिखित ने मेरे लिए समस्या हल की:

  1. इस कोड को अपने में जोड़ें build.gradle (मॉड्यूल: ऐप) अंदर defaultConfing:

    defaultConfig {
        ....
        ....
        multiDexEnabled = true
    }
    
  2. इस कोड को अपने में जोड़ें build.gradle (मॉड्यूल: ऐप) अंदर dependencies:

    dependencies {
        compile 'com.android.support:multidex:1.0.1'
        .....
        .....
    }
    
  3. खुला AndroidManifest.xml और भीतर application:

    <application
        android:name="android.support.multidex.MultiDexApplication"
        .....
        .....
    </application>
    

    या यदि आपके पास अपनी ऐप क्लास है, तो इसे मल्टीडेक्स एप्लिकेशन से बढ़ाएं जैसे:

    public class MyApp extends MultiDexApplication {
    .....
    

और अंत में, मुझे लगता है कि आपके पास होना चाहिए एंड्रॉइड समर्थन रिपोजिटरी डाउनलोड, में अतिरिक्त में एसडीके प्रबंधक


25
2018-02-11 11:59





बस अपने आवेदन वर्ग में निम्न विधि को ओवरराइड करें।

public class YourApplication extends Application {

    @Override
    protected void attachBaseContext(Context context) {
        super.attachBaseContext(context);
        MultiDex.install(this);
    }
    @Override
    public void onCreate() {
        super.onCreate();
        Realm.init(this); //initialize other plugins 

    }
}

18
2018-04-10 08:22



प्लस वन के लिए गिरने के लिए नहीं android:name मैनिफेस्ट में सामान - Chisko
सबसे सरल और सबसे अच्छा जवाब - kader kabore


सक्षम करने से multidex एक अच्छा समाधान नहीं है क्योंकि multidexएंड्रॉइड में एक और उपयोग इस जवाब को देखते हैं मल्टीडेक्स क्या है 

समाधान तत्काल रन को अक्षम कर रहा है क्योंकि @ शिलेंद्र मददा ने कहा

सेटिंग्स → बिल्ड, निष्पादन, परिनियोजन → त्वरित रन और तत्काल रन सक्षम करें अनचेक करें

मुझे लगता है कि इस समस्या का कारण तब होता है जब तत्काल रन सक्षम होता है, एंड्रॉइड स्टूडियो पुस्तकालयों को नहीं डालता है firebase परियोजना निर्माण समय घटाने के लिए जेनरेट एपीके में firebase  पुस्तकालय और अन्य पुस्तकालयों जैसे कि maps तथा अन्य लोग प्ले सेवाओं में मौजूद है और एंड्रॉइड डिवाइस पर प्ले सेवाएं स्थापित की गई हैं, इसलिए यदि तत्काल रन सक्षम करने के लिए उन्हें बिल्डिंग समय तेज़ी से बनाने के लिए जेनरेट एपीके में रखने की आवश्यकता नहीं है।

तो जब आप एपीके निकालते हैं और इसे किसी अन्य डिवाइस पर इंस्टॉल करते हैं तो आपको यह अपवाद दिखाई देगा


10
2017-08-07 13:28



यह एकदम सही समाधान है - Ghanshyam Bagul
यह मेरे लिए हल किया गया है। - icortesi
यह स्वीकार्य उत्तर होना चाहिए .. धन्यवाद Feizi .. - Rizwan Sohaib
हां त्रुटि तत्काल रन के कारण है इसे इंगित करने के लिए धन्यवाद। - Rafiq Ahmad


यदि आप अपने ऐप ग्रैडल में मल्टीडेक्स का उपयोग कर रहे हैं तो बदलें आवेदन बढ़ाता है सेवा मेरे मल्टीडेक्स आवेदन बढ़ाता है आपके आवेदन वर्ग में। यह बदनाम काम करेगा


5
2018-02-22 10:45





मुझे नीचे दिए गए समाधान के सभी समाधानों का प्रयास करने के बाद भी एक ही समस्या का सामना करना पड़ा है।

यदि आपने प्रोग्रार्ड नियम लागू किए हैं तो प्रोगार्ड नियमों में नीचे पंक्ति जोड़ें

-keep class com.google.firebase.provider.FirebaseInitProvider

और यह मेरी समस्या हल।


5
2018-05-03 07:08



स्वीकृत उत्तर होना चाहिए - Arthur Melo


पहले build.gradle (मॉड्यूल: ऐप) ----> में निम्नलिखित जोड़ें

defaultConfig{
..
multiDexEnabled true
..
}

फिर एक ही फ़ाइल में निम्नलिखित जोड़ें

dependencies{
...
compile 'com.android.support:multidex:1.0.1'
...
}

फिर AndroidManifest.xml में निम्न लिखें

<application
    android:name="android.support.multidex.MultiDexApplication"
    .....
    .....
</application>

बस। यह निश्चित रूप से काम करेगा


4
2018-02-24 14:02



आपका जवाब समझने के लिए आसान कदम है, धन्यवाद। - 徐博俊
आपका स्वागत है। - Hirak JD