I had the same error and I solved it with MultiDex, like described on this link : https://developer.android.com/studio/build/multidex.html
Sometimes it is not enough just to enable MultiDex.
If any class that's required during startup is not provided in the primary DEX file, then your app crashes with the error java.lang.NoClassDefFoundError. https://developer.android.com/studio/build/multidex#keep
FirebaseInitProvider is required during startup.
So you must manually specify FirebaseInitProvider as required in the primary DEX file.
build.gradle file
android {
buildTypes {
release {
multiDexKeepFile file('multidex-config.txt')
...
}
}
}
multidex-config.txt (in the same directory as the build.gradle file)
com/google/firebase/provider/FirebaseInitProvider.class
I too faced the same issue and finally solved it by disabling Instant Run
in an android studio.
Settings → Build, Execution, Deployment → Instant Run and uncheck Enable Instant Run
Update:
There is no Instant Run option available in latest Android Studio 3.5+. It should be applicable only for older versions.
In the build.gradle(Module:app) file, insert the code below into defaultConfig :
defaultConfig {
applicationId "com.***.****"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled true
}
and insert into to dependencies :
implementation 'com.android.support:multidex:2.0.1'
Then add code to manifest :
<application
android:name="android.support.multidex.MultiDexApplication"
I had the same problem in my (YouTube player project)... and the following solved the problem for me:
Add this code into your build.gradle
(module: app) inside defaultConfing
:
defaultConfig {
....
....
multiDexEnabled = true
}
Add this code into your build.gradle
(module: app) inside dependencies
:
dependencies {
compile 'com.android.support:multidex:1.0.1'
.....
.....
}
Open AndroidManifest.xml
and within application
:
<application
android:name="android.support.multidex.MultiDexApplication"
.....
.....
</application>
or if you have your App class, extend it from MultiDexApplication like:
public class MyApp extends MultiDexApplication {
.....
And finally, I think you should have Android Support Repository downloaded, in the Extras in SDK Manager.
Just override the following method in your application class.
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
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With