Obteniendo la excepción java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions después de actualizar a la nueva base de fuego
Actualicé mi aplicación a la nueva base de fuego usando esto y ahora, cuando compilo mi proyecto, aparece la siguiente excepción.
Aquí está mi logcat:
11:57:54.533 27844-27844/com.example.dayshift_2.traveyy E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.dayshift_2.traveyy, PID: 27844
java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions
at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1591)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1562)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
at android.app.ActivityThread.installProvider(ActivityThread.java:4871)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4466)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4406)
at android.app.ActivityThread.access$1500(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1270)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5102)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Mi compilación.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.example.dayshift_2.traveyy"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'com.facebook.android:facebook-android-sdk:4.+'
compile 'com.google.android.gms:play-services:9.0.0'
compile 'com.google.firebase:firebase-database:9.0.0'
compile 'com.google.firebase:firebase-auth:9.0.0'
compile 'com.android.support:support-v13:23.3.0'
compile 'com.roughike:bottom-bar:1.2.1'
}
apply plugin: 'com.google.gms.google-services'
No estoy seguro de dónde obtengo esta excepción. cualquier ayuda será muy apreciada. Gracias
Esto funcionó para mí:
- Si aún no lo ha hecho, actualice sus 'Servicios de Google Play' a la Revisión 30 desde Android SDK Manager > Extras.
Y luego agregue la línea
compile 'com.android.support:multidex:1.0.1'
a sus dependencias (o simplemente elimínelamultiDexEnabled true
si no es necesario)Agregue este atributo a la etiqueta de la aplicación en el manifiesto:
android:name="android.support.multidex.MultiDexApplication"
si ya tiene una clase de aplicación personalizada definida en el manifiesto de Android, extiéndala desdeMultiDexApplication
en lugar deApplication
¡Espero que haya ayudado!
Estaba usando los últimos servicios de Google Play pero no funcionaba. Para mí este procedimiento está funcionando:
Actualicé mi clase de aplicación:
public class App extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } }
Archivo actualizado
build.gradle
:defaultConfig { ... multiDexEnabled true }
Dependencias incluidas:
dependencies { compile 'com.android.support:multidex:1.0.0' }
Es muy sencillo arreglarlo, muchachos. Si están utilizando player-services y firebase en su proyecto, asegúrese de no importar todos los servicios disponibles en Google. Simplemente importe las API que realmente necesita. Por ejemplo:
compile 'com.google.firebase:firebase-messaging:9.2.0'
compile 'com.google.android.gms:play-services:9.2.0'
Hacerlo de esta manera puede generar un error noclassdeffound . Para solucionar este problema
elimine los servicios de reproducción y sincronice su proyecto. Si tiene dependencias como el uso de anuncios o mapas en su aplicación, defina la API específica. como:
compile 'com.google.android.gms:play-services-maps:9.2.0'
Nota: Máximo no intente utilizar multiDexEnabled true . Este debería ser su último paso para arreglar algo.
Espero que esto sea útil.