"Com.google.firebase.provider.FirebaseInitProvider" ক্লাসটি খুঁজে পেল না?


156

অ্যাপ্লিকেশন লঞ্চটিতে আমি নীচের ব্যতিক্রম পাচ্ছি getting

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) 

অ্যাপ্লিকেশন স্তরের বিল্ড.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'

এটি আমার অ্যাপ্লিকেশন স্তরের বিল্ড.gradle le

// 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
}

কীভাবে বিষয়টি সমাধান করবেন?



আমি ইতিমধ্যে সমস্ত উত্তর চেষ্টা করেছিলাম। কিছুই কাজ করে না
16'6

আপনার ম্যানিফেস্টে বা গুগল-পরিষেবাদিগুলিতে কোনও সমস্যা আছে বলে মনে হচ্ছে they জসসন নিশ্চিত হন যে সেগুলি সঠিক। আপনি কি আপনার প্রকাশিত ফাইল পোস্ট করতে পারেন?
রশি এম ঠাক্কর

6
আপনি স্পষ্ট পরিবর্তন MultiDex জন্য প্রয়োজনীয় করতে চাইছেন: android:name="android.support.multidex.MultiDexApplication"? MultiDex সঠিকভাবে কনফিগার করা থাকে তবে আপনাকে এই এক মত init অ্যাপ্লিকেশন সময় Logcat বার্তা দেখতে হবে: I/MultiDex: install done
বব স্নাইডার

হ্যাঁ, তাত্ক্ষণিক রান অক্ষম হলে তাত্ক্ষণিক রান সক্ষম করুন।
প্রতাপ বাদবথ

উত্তর:


145

আমারও একই ত্রুটি ছিল এবং আমি এটিকে এই লিঙ্কে বর্ণিত মত মাল্টিডেক্স দিয়ে সমাধান করেছি: https://developer.android.com/studio/build/m Multidex.html


কখনও কখনও কেবলমাত্র মাল্টিডেক্স সক্ষম করার জন্য এটি যথেষ্ট নয়।

প্রারম্ভকালীন সময়ে যে শ্রেণীর প্রয়োজন হয় তা যদি প্রাথমিক ডেক্স ফাইলটিতে সরবরাহ না করা থাকে তবে আপনার অ্যাপ্লিকেশনটি java.lang.NoClassDefFoundError ত্রুটি দিয়ে ক্র্যাশ করে । https://developer.android.com/studio/build/multidex#keep

ফায়ারবেসআইনিটপ্রোভাডার স্টার্টআপের সময় প্রয়োজন।

সুতরাং আপনি নিজে উল্লেখ করতে হবে FirebaseInitProvider প্রাথমিক Dex ফাইলে প্রয়োজন।

build.gradle ফাইল

android {
    buildTypes {
        release {
            multiDexKeepFile file('multidex-config.txt')
            ...
        }
    }
}

multidex-config.txt (বিল্ড.gradle ফাইল হিসাবে একই ডিরেক্টরিতে)

com/google/firebase/provider/FirebaseInitProvider.class

1
আপনি আশ্চর্যজনক <3 অনেক ধন্যবাদ আপনি আমার দিনটি বাঁচিয়েছিলেন <3
মোহাম্মদ আতেফ

24
আরে এই ব্যতিক্রম: java.lang.ClassNotFoundException দ্বারা তৈরি: "com.google.firebase.provider.FirebaseInitProvider" ক্লাসটি খুঁজে পেল না, মাল্টিডেক্স সক্ষম করার সাথে কিছুই করার নেই, বাস্তবে আপনি যদি প্রশ্নগুলি বিল্ড্র্যাডল দেখেন তবে মাল্টিডেক্সএনেবল সক্ষম!
জর্জেসিস

3
এই ত্রুটিটি মাল্টিডেক্স থেকে নয়, তিনি কেবল সমস্ত পদক্ষেপগুলি সম্পন্ন করেননি, কারণ আপনি তাঁর প্রকাশ বা তার প্রধান শ্রেণিটি দেখতে পাচ্ছেন না।
AMAN77

3
এটি কাজ করে। আমি আমার গ্রেডল ফাইলটিতে মাল্টিডেক্স সক্ষম করেছিলাম তবে অ্যান্ড্রয়েড ম্যানিফেস্ট অংশটি মিস করছি!
ক্রিকার

3
এছাড়াও, আপনার Applicationক্লাসটি প্রসারিত হয়েছে তা নিশ্চিত করুন MultiDexApplication()। এটি আমার ক্ষেত্রে অনুপস্থিত ছিল।
নেলসন

86

আমিও একই সমস্যার মুখোমুখি হয়েছি এবং শেষ পর্যন্ত Instant Runএকটি অ্যান্ড্রয়েড স্টুডিওতে অক্ষম করে সমাধান করেছি ।

সেটিংস → বিল্ড, এক্সিকিউশন, ডিপ্লোয়মেন্ট → তাত্ক্ষণিক চালান এবং তাত্ক্ষণিক চালন সক্ষম করুন

হালনাগাদ:

সর্বশেষতম অ্যান্ড্রয়েড স্টুডিও 3.5+ তে কোনও ইনস্ট্যান্ট রান বিকল্প উপলব্ধ নেই। এটি কেবল পুরানো সংস্করণগুলির জন্য প্রযোজ্য।


8
আমার জন্যও একই. এটি সমস্যার কারণ ছিল - মাল্টেডেক্স বা অন্য কোনও উত্তর নয়।
ব্যবহারকারী 3562927

3
দেখে মনে হচ্ছে এটি অ্যান্ড্রয়েড স্টুডিও ২.৩ এর একটি সমস্যা। তাত্ক্ষণিক রানটি অক্ষম করা আমার পক্ষেও কার্যকর হয়েছিল, তবে এটি আদর্শ সমাধান নয় :(
থারাকা দেবীদা

1
আমি অন্য ফার্ম থেকে দুটি প্রকল্প উত্তরাধিকারসূত্রে পেয়েছি। কোড বেস, মেনিফেস্ট এবং গ্রেড কনফিগারেশনগুলি বেশ কয়েকটি ছোটখাটো আইটেমের জন্য প্রায় একই প্রত্যাশা। একটি প্রকল্প তৈরি করে এবং জরিমানা চালায়, অন্যটি করে না। তাত্ক্ষণিক রান বন্ধ হয়ে গেছে এবং তারা উভয়ই এখন চালায়। স্ট্রেঞ্জ। এটি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করছে। 2.3।
joeblow23

3
আমি এএসআই ৩.১ এবং একটি এমুলেটর চলমান এপিআই ২ with নিয়ে এই একই সমস্যার মুখোমুখি হয়েছি Before আমি এপিআই 19-25 এর আগে কোনও সমস্যার মুখোমুখি হইনি। তাত্ক্ষণিক রানটি অক্ষম করা সত্যিই আমাকে অ্যাপ্লিকেশন চালাতে দিন। ধন্যবাদ।
মার্সিন জেদিনাক

1
তাত্ক্ষণিক রান অক্ষম করা আমার পক্ষে এই সমস্যার সমাধান করে না।
অ্যালোশাক

49

বিল্ড.gradle (মডিউল: অ্যাপ) ফাইলে, নীচের কোডটি ডিফল্টকনফাইগে প্রবেশ করান:

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

এবং নির্ভরতা inোকান:

implementation 'com.android.support:multidex:2.0.1'

তারপরে প্রকাশ করতে কোড যুক্ত করুন:

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

1
আমি চেষ্টা করছি, যদি এটি কাজ করে তবে আমি ভোট দিয়েছি এবং মন্তব্য করব
কামিল ইবাদভ

45

আমার (ইউটিউব প্লেয়ার প্রকল্পে) আমার একই সমস্যা ছিল ... এবং নিম্নলিখিতগুলি আমার জন্য সমস্যার সমাধান করেছে:

  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 {
    .....

এবং পরিশেষে, আমি মনে করি আপনি থাকা উচিত অ্যান্ড্রয়েড সাপোর্ট সংগ্রহস্থলের প্রয়োগ ডাউনলোড মধ্যে অতিরিক্ত মধ্যে SDK এর ম্যানেজার


1
আমি "মাল্টিডেক্স.ইন.স্টল (এটি);" কিন্তু এটি কার্যকর হয়নি। মাল্টিডেক্স অ্যাপ্লিকেশন সহ অ্যাপ্লিকেশন শ্রেণি প্রসারিত করা কৌশলটি করেছে।
নিরাপদ

33

আপনার অ্যাপ্লিকেশন শ্রেণিতে নিম্নলিখিত পদ্ধতিটি কেবল ওভাররাইড করুন।

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 

    }
}

android:nameম্যানিফেস্টে
স্টাফের

সবচেয়ে সহজ এবং সর্বোত্তম উত্তর
কাদের কাবোর

আপনি যদি কাস্টম অ্যাপ্লিকেশন ক্লাস ব্যবহার করছেন তবে এটির উত্তর। অন্যান্য উত্তরগুলি সমস্যার সমাধান করবে না।
মাকহায় গুরুং

25

আপনার অ্যাপ্লিকেশন এবং এটিতে গ্রন্থাগারগুলি 65,536 পদ্ধতির ছাড়িয়ে গেলে আপনি একটি বিল্ড ত্রুটির মুখোমুখি হন যা আপনার অ্যাপটি অ্যান্ড্রয়েড বিল্ড আর্কিটেকচারের সীমাতে পৌঁছেছে তা নির্দেশ করে encounter

এই সীমাবদ্ধতা এড়াতে আপনাকে মাল্টিডেক্সের জন্য আপনার অ্যাপ্লিকেশনটি কনফিগার করতে হবে

যদি আপনার minSdkVersion সেট করা হয় 21 বা উচ্চতর, সমস্ত আপনাকে যা করতে হবে, আপনার মডিউল-স্তরের build.gradle ফাইলে সত্যতে multiDexEnabled সেট করা হয় যেমন এখানে দেখানো:

android {
    defaultConfig {
        ...
        minSdkVersion 21 
        multiDexEnabled true
    }
    ...   
}

অন্যথায় , যদি আপনার minSdkVersion 20 বা তার চেয়ে কম সেট করা থাকে, তবে আপনাকে অবশ্যই নিম্নলিখিত হিসাবে মাল্টিডেক্স সমর্থন লাইব্রেরিটি ব্যবহার করতে হবে:

1। মাল্টিডেক্স সক্ষম করার জন্য মডিউল-স্তরের বিল্ড.gradle ফাইলটি সংশোধন করুন এবং মাল্টিডেক্স লাইব্রেরিকে নির্ভরতা হিসাবে যুক্ত করুন, এখানে দেখানো হয়েছে:

android {
    defaultConfig {
        ...
        minSdkVersion 15 
        multiDexEnabled true
    }
    ...
 }

dependencies {
        implementation 'com.android.support:multidex:1.0.3'
}

2। আপনি অ্যাপ্লিকেশন শ্রেণিকে ওভাররাইড করে কিনা তার উপর নির্ভর করে নিম্নলিখিতগুলির একটি সম্পাদন করুন:

  • আপনি যদি অ্যাপ্লিকেশন শ্রেণিকে ওভাররাইড না করে থাকেন তবে আপনার ম্যানিফেস্ট ফাইলটি অ্যান্ড্রয়েড সেট করতে সম্পাদনা করুন: ট্যাগটিতে নামটি নিম্নরূপ:

    <application
        android:name="android.support.multidex.MultiDexApplication" >
        ...
    </application>
  • অন্য আপনি যদি অ্যাপ্লিকেশন শ্রেণিকে ওভাররাইড করে থাকেন তবে নীচে মাল্টিডেক্সএক্সপ্লিকেশন (সম্ভব হলে) প্রসারিত করতে এটি পরিবর্তন করুন:

   public class MyApplication extends MultiDexApplication { ... }
  • অন্যথায় আপনি অ্যাপ্লিকেশন ক্লাসটি ওভাররাইড করেন তবে বেস ক্লাসটি পরিবর্তন করা সম্ভব নয়, তারপরে আপনি সংযুক্তিবেসকন্টেক্সট () পদ্ধতিটি ওভাররাইড করতে পারেন এবং মাল্টিডেক্স সক্ষম করতে মাল্টিডেক্স.ইন.স্টল (এটি) কল করতে পারেন:

   public class MyApplication extends SomeOtherApplication {
     @Override
     protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
     }
   }

কেন অ্যাপ্লিকেশনটির মাল্টিডেক্স অ্যাপ্লিকেশন বাড়ানো দরকার?
জেসন

1
মাল্টিডেক্সএপ্লিকেশন হ'ল সহায়ক লাইব্রেরি ক্লাস। এটি অ্যাপ্লিকেশন শ্রেণি প্রয়োগ করে এবং মাল্টিডেক্স রেজিস্ট্রেশনের জন্য কাজ করার জন্য একটি পদ্ধতি নাম AttBaseContext ওভাররাইড করে। আপনি সংযুক্তিবেসকন্টেক্সট পদ্ধতিটি ওভাররাইড করলে আপনার এই শ্রেণিটি প্রসারিত করার দরকার নেই।
সোকমিয়ান পন

1
এটি আমার জন্য 2019 সালে প্রতিক্রিয়া নেটিভ সহ এটি স্থির করেছে তবে মেইন অ্যাপ্লিকেশন.জভাতে 2 টি আমদানি মিস করছে: import android.content.Context;এবংimport android.support.multidex.MultiDex;
xaphod

1
আপনার উত্তর আমাকে আমার অ্যাপ্লিকেশনটিকে আবার তুলনা করতে সহায়তা করেছে।
অলোক বিশ্বকর্মা 17'19

18

সক্ষম multidexকরা ভাল সমাধান নয় কারণ multidexঅ্যান্ড্রয়েডে অন্য ব্যবহার রয়েছে এই উত্তরটি মাল্টিডেক্স কী তা দেখুন

@ শৈলেন্দ্র ম্যাড্ডা বলেছিলেন যে সমাধানটি তাত্ক্ষণিকভাবে চালানো অক্ষম করছে

সেটিংস → বিল্ড, এক্সিকিউশন, ডিপ্লোয়মেন্ট → তাত্ক্ষণিক চালান এবং তাত্ক্ষণিক চালন সক্ষম করুন

আমি মনে করি যখন তাত্ক্ষণিকভাবে সক্ষম করা সক্ষম হয়ে থাকে তখন এন্ড্রয়েড স্টুডিওগুলি firebaseউত্পন্ন এপিপি-র মতো লাইব্রেরিগুলিকে প্রজেক্ট তৈরির সময় হ্রাস করতে দেয় না কারণ firebase লাইব্রেরি এবং অন্যান্য লাইব্রেরি যেমন mapsএবং অন্যান্য প্লে প্লেসে উপস্থিত রয়েছে এবং প্লে পরিষেবাগুলি ইনস্টল করা আছে অ্যান্ড্রয়েড ডিভাইসে তাই তাত্ক্ষণিকভাবে চালিত সক্ষম থাকলে বিল্ড সময়কে আরও দ্রুত তৈরি করার জন্য এগুলিকে জেনারেটেড এপিকে রাখার দরকার নেই।

সুতরাং আপনি যখন এপিকে বের করে অন্য ডিভাইসে ইনস্টল করবেন আপনি এই ব্যতিক্রম দেখতে পাবেন this


1
এটি নিখুঁত সমাধান
ঘনশ্যাম বাগুল

তাত্ক্ষণিক রান অক্ষম করা আমার পক্ষে সমস্যার সমাধান করে না।
অ্যালোশাক

অ্যান্ড্রয়েড স্টুডিও ৩.৩.১ এ বিল্ড, এক্সিকিউশন, ডিপ্লোয়মেন্ট বিভাগে ইনস্ট্যান্ট রান আইটেম নেই।
ভার্জিলি

@ ভার্গিলি তারা প্রয়োগের পরিবর্তনের সাথে এটিকে প্রতিস্থাপন করেছেন রিলিজ ব্লগ পোস্ট android-developers.googleblog.com/2019/08/… আরও তথ্যের জন্য এবং ডকস ডেভেলপার দেখুন and পরিবর্তনগুলি
এডালাত ফিজি

14

নীচের সমাধানটি পেয়েছি সমস্ত সমাধানের চেষ্টা করার পরেও আমি একই সমস্যার মুখোমুখি হয়েছি।

আপনি যদি অগ্রসর বিধি প্রয়োগ করেন তবে প্রোগুয়ার্ড বিধিগুলিতে নীচে লাইন যুক্ত করুন

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

এবং এটি আমার সমস্যার সমাধান করে।


@ গুণাভান্ত প্যাটেল ব্রো দয়া করে আমাকে কিভাবে অগ্রগতিতে যুক্ত করবেন দয়া করে বলুন
গৌতম্যান এম

1
@ গুনাভন্ত প্যাটেল আমার মনে হয় এটি আমার সমস্যার সমাধান করবে ... আপনি কি দয়া করে এই লাইনটি রাখবেন সেই নমুনা কোড পোস্ট করতে পারেন-keep class com.google.firebase.provider.FirebaseInitProvider
গৌতম্যান এম

@ গৌতম্যানম প্রথমে আপনাকে অ্যাপ্লিকেশন / বিল্ড.gradle ফাইলটিতে অগ্রগতি সক্ষম করে দেখুন। যদি সক্ষম করে থাকে তবে আপনি সেই ফাইলটিতে অ্যাপ্লিকেশন / প্রগুয়ার্ড-আরলস.প্রুতে প্রগুয়ার্ড-বিধি ফাইলটি সন্ধান করুন above আপনি যদি অগ্রগতি সক্ষম না করেন তবে তা আপনাকে সহায়তা করবে না।
গুণবন্ত প্যাটেল

buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }কীভাবে সক্ষম করবেন দয়া করে আমাকে
স্যারকে

আপনি যদি অগ্রগতি সক্ষম না করে থাকেন তবে সমস্যাটি আলাদা। তবে আমি আপনাকে দেখাব যে এটি কীভাবে সক্ষম হয়। মুক্তির ক্ষেত্রে "মিনিফাইএনেবলড ট্রু" যুক্ত করুন বা আপনি যদি ডিবাগের জন্য সক্ষম করতে চান তবে ডিবাগ প্রকারেও যুক্ত করুন।
গুণবন্ত প্যাটেল

8

1: গ্রেডে সক্ষম করুন মাল্টিডেক্সএইনবল সক্ষম করুন এবং নির্ভরতাগুলিতে মাল্টিডেক্স লাইব্রেরি যুক্ত করুন।

android {
   ...
   defaultConfig {
      multiDexEnabled true
      ...
   }
}

dependencies {
  // add dependency 
  implementation 'com.android.support:multidex:1.0.1'
}

2: ম্যানিফেস্ট ফাইলে যান এবং অ্যান্ড্রয়েড লিখুন: নাম = "My

    <application
        android:name=".MyApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        .
        .
        .
        .
        .
    </application>

3: আপনি যেমন অ্যান্ড্রয়েড লিখেছেন: নাম = "My মাই অ্যাপ্লিকেশন" ম্যানিফেস্ট ফাইলের ভিতরে আবেদন এটি আপনাকে একটি ত্রুটি দেবে কারণ আপনি মাই অ্যাপ্লিকেশন ক্লাস তৈরি করেন নি। মাই অ্যাপ্লিকেশন ক্লাসটি তৈরি করুন এটি "অ্যাপ্লিকেশন" শ্রেণীর দ্বারা প্রসারিত করুন বা কেবল ক্লিক করুন y আমার অ্যাপ্লিকেশনটি, একটি সিনট্যাক্সের বাম দিকে একটি ছোট লাল বেলুন প্রদর্শিত হবে, আপনি মেনুতে (মাই অ্যাপ্লিকেশন শ্রেণি তৈরি করুন) দেখতে পাবেন, এটিতে ক্লিক করুন এবং অন্তর্ভুক্ত করুন ক্লাসের ভিতরে পদ্ধতিটি নীচে।

    public class MyApplication extends Application {

    @Override 
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    } 

আপনি যদি আরও তথ্য পেতে চান তবে এই লিঙ্কটিতে ক্লিক করুন: [ https://developer.android.com/studio/build/m લ્ટ dex.html]

আশা করি, এটি আপনার পক্ষে কাজ করে।


7

প্রথমে বিল্ড.gradle (মডিউল: অ্যাপ) ----> এ নিম্নলিখিতগুলি যুক্ত করুন

defaultConfig{
..
multiDexEnabled true
..
}

তারপরে একই ফাইলটিতে নিম্নলিখিতটি যুক্ত করুন

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

তারপরে অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএলে নিম্নলিখিতটি লিখুন

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

এটাই. এটা অবশ্যই কাজ করবে


6

আপনি নিজের অ্যাপ্লিকেশনটি Gradle তারপর পরিবর্তন MultiDex ব্যবহার করে থাকেন আবেদন প্রসারিত করতে MultiDexApplication প্রসারিত আপনার আবেদন ক্লাসে। এটা অবজ্ঞাপূর্ণভাবে কাজ করবে


4

আমার একই সমস্যা ছিল এবং সমাধান হয়েছে কেবল একটি টুকরো কোড যুক্ত করুন , আপনি যদি এই সমস্যাটি পান তবে এর আগে আপনি ফায়ারবেস ব্যবহার করার জন্য প্রয়োজনীয় সমস্ত পদক্ষেপ ইতিমধ্যে সম্পন্ন করেছেন। আপনাকে কেবল এমন একটি শ্রেণি তৈরি করতে হবে যা অ্যাপ্লিকেশনকে প্রসারিত করে (সর্বজনীন শ্রেণীর অ্যাপ্লিকেশন_ক্র্যাশ - রপুর্ট অ্যাপ্লিকেশন প্রসারিত করে) এবং এই ক্লাসটিকে মেইনিস্ট ফাইলটিতে যুক্ত করবে এবং সেই শ্রেণিতে কেবল নীচের পদ্ধতিটিকে ওভাররাইড করবে

  @Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
}

এবং MultiDex.install যোগ করুন (এটি); যে পদ্ধতি মানে

  @Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

দ্রষ্টব্য : - উপরের পদক্ষেপগুলি অনুসরণ করতে ভুলবেন না


2

এটি মাল্টিডেক্সের কারণে।

সমাধানের পদক্ষেপগুলি:

  1. গ্রেড-> নির্ভরতা -> (সংকলন 'কম.অ্যান্ড্রয়েড.সম্পোর্ট: মাল্টিডেক্স: 1.0.1') এটিকে নির্ভরতাগুলিতে যুক্ত করুন

  2. আপনার প্রকল্পের অ্যাপ্লিকেশন শ্রেণিতে এই জাতীয়ভাবে মাল্টিডেক্স আবেদন প্রয়োগ করা হয়েছে (পাবলিক ক্লাস মাই অ্যাপ্লিকেশনটি মাল্টিডেক্স অ্যাপ্লিকেশন প্রসারিত করে)

  3. দৌড়ে চেক করুন


2

যারা আসছেন তাদের জন্য এটি কিছুটা দেরী, তবে আপনার অগ্রগতির নিয়মগুলি পরীক্ষা করুন! আমি এই উপর অনেক সময় নষ্ট। আপনার অগ্রগতির নিয়মগুলি গুরুত্বপূর্ণ ফায়ারবেস ফাইলগুলিতে নাম পরিবর্তন করতে পারে। এটি সত্যিই কেবল উত্পাদন এবং তাত্ক্ষণিক দৌড়তে সমস্যা প্রমাণ করে :)

proguard-rules.pro

-keep class com.google.firebase.** { *; }
-keep class com.firebase.** { *; }
-keep class org.apache.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-dontwarn org.apache.**
-dontwarn org.w3c.dom.**

এই কৌশলটি করেছে, মাল্টিডেক্স সক্ষম করে সময় নষ্ট ছাড়া কিছুই করেনি!
ম্যাগনাস ডব্লিউ

2

পূর্বে উল্লিখিত হিসাবে, এটি এর সাথে একটি সমস্যা multidex: আপনার build.gradleএবং আপনার প্রয়োগ বাস্তবায়ন করা উচিত MainApplication.java। তবে আপনি যা যুক্ত করেন তা নির্ভর করে আপনি AndroidX সমর্থন করেন কি না তার উপর নির্ভর করে on এই সমস্যাটি সমাধান করার জন্য আপনার যা দরকার তা এখানে:

  1. যদি আপনি অ্যান্ড্রয়েডএক্স সমর্থন করেন

build.gradleকোডগুলির এই লাইনগুলি আপনার (android / app / build.gradle) এ রাখুন:

defaultConfig {
  applicationId "com.your.application"
  versionCode 1
  versionName "1.0"
  ...
  multiDexEnabled true // <-- THIS LINE
}
...
...
dependencies {
  ...
  implementation "androidx.multidex:multidex:2.0.1" // <-- THIS LINE
  ...
}

এই লাইনগুলিকে আপনার MainApplication.java(অ্যান্ড্রয়েড / অ্যাপ্লিকেশন / এসআরসি / প্রধান / জাভা /.../ মাইন অ্যাপ্লিকেশন.জভা) এ রাখুন:

package com.your.package;

import androidx.multidex.MultiDexApplication; // <-- THIS LINE
...
...
public class MainApplication extends MultiDexApplication { ... } // <-- THIS LINE
  1. যদি আপনি অ্যান্ড্রয়েডএক্স সমর্থন করেন না

build.gradleকোডগুলির এই লাইনগুলি আপনার (android / app / build.gradle) এ রাখুন:

defaultConfig {
  applicationId "com.your.application"
  versionCode 1
  versionName "1.0"
  ...
  multiDexEnabled true // <-- THIS LINE
}
...
...
dependencies {
  ...
  implementation "com.android.support:multidex:1.0.3" // <-- THIS LINE
  ...
}

এই লাইনগুলিকে আপনার MainApplication.java(অ্যান্ড্রয়েড / অ্যাপ্লিকেশন / এসআরসি / প্রধান / জাভা /.../ মাইন অ্যাপ্লিকেশন.জভা) এ রাখুন:

package com.your.package;

import android.support.multidex.MultiDex;; // <-- THIS LINE
...
...
public class MainApplication extends MultiDexApplication { ... } // <-- THIS LINE

1

MultiDexApplicationপরিবর্তে আপনার অ্যাপ্লিকেশন ক্লাসটি বাড়ানো উচিত Application


0

এই সমস্যাটি ঘটেছিল যখন আমি অ্যান্ড্রয়েড গ্রেডল প্লাগইন 3.4.0 এর সাথে অ্যান্ড্রয়েড স্টুডিও 3.4 এ স্যুইচ করেছি। যা আর 8 সংকলকটির সাথে কাজ করে।

অ্যান্ড্রয়েড গ্রেডল প্লাগইনে অতিরিক্ত পূর্বনির্ধারিত প্রোগুয়ার্ড বিধি ফাইলগুলি অন্তর্ভুক্ত থাকে তবে এটি প্রস্তাবিত হয় আপনি প্রগুয়ার্ড-অ্যান্ড্রয়েড-অনুকূলিতকরণ.টিএসটি ব্যবহার করুন । আরও তথ্য এখানে

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile(
          'proguard-android-optimize.txt'),
          // List additional ProGuard rules for the given build type here. By default,
          // Android Studio creates and includes an empty rules file for you (located
          // at the root directory of each module).
          'proguard-rules.pro'
    }
}

0

আমি একই সমস্যার মুখোমুখি হয়েছি এবং ফায়ারবেস স্টোরেজ সংস্করণ ফায়ারবেস ডাটাবেস সংস্করণের মতোই পরিবর্তন করে আমি এই সমস্যাটি সমাধান করেছি

 implementation 'com.google.firebase:firebase-core:16.0.8'
 implementation 'com.google.firebase:firebase-database:16.0.1'
 implementation 'com.google.firebase:firebase-storage:17.0.0'

প্রতি

 implementation 'com.google.firebase:firebase-core:16.0.8'
 implementation 'com.google.firebase:firebase-database:16.0.1'
 implementation 'com.google.firebase:firebase-storage:16.0.1'

0

আপনার যদি> 20 মিনিট ডিস্কভারশন থাকে তবে আপনার সর্বশেষতম ফায়ারবেস অ্যাথ সংস্করণটি ব্যবহার করা দরকার

বাস্তবায়ন 'com.google.firebase: ফায়ারবেস-এথ: 18.1.0'

এবং যদি আপনার আসলে এটির প্রয়োজন না হয় তবে মাল্টি-ডেক্স সেটআপ করার দরকার নেই।

আমি এই সমস্যার মুখোমুখি হয়েছি যখন আমি ফায়ারবেস সহায়ক থেকে 16.0.5 ব্যবহার করেছি তবে আমি 18.1.0 এ আপডেট হয়ে গেলে এটি ঠিক করতে সক্ষম হয়েছি।


0

আপনি যদি জ্যামারিন ব্যবহার করছেন ms ফর্মগুলি আপনি যাচাই করতে চাইতে পারেন "com.google.firebase.provider.FirebaseInitProvider" ক্লাসটি খুঁজে পান নি? যেহেতু এটি প্রারম্ভকালে গুগল ফায়ারবেস (এই সময়ে অমীমাংসিত) এর সাথে ডেক্স ত্রুটির সাথে বিষয়টি ক্যাপচার করে।

আমি স্বল্প-মেয়াদে কোনও সঙ্কোচিত ব্যবহার না করে ফিরে এসেছি এবং আর 8 আরও স্থিতিশীল না হওয়া পর্যন্ত প্রোগার্ড ব্যবহার করার পরিকল্পনা করছি।


-6

প্রকল্পের মূলপথ google-Services.json এ যুক্ত করুন

dependencies {
compile 'com.android.support:support-v4:25.0.1'
**compile 'com.google.firebase:firebase-ads:9.0.2'**
compile files('libs/StartAppInApp-3.5.0.jar')
compile 'com.android.support:multidex:1.0.1'
  }
apply plugin: 'com.google.gms.google-services'

আপনার উত্তরে কিছু তথ্য যুক্ত করার কথা বিবেচনা করুন এবং এই কোডটি কাউকে সাহায্য করবে না
আশু কুমার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.