Obtención de la excepción java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions después de actualizar a la nueva base de firebase

He actualizado mi aplicación a la nueva base de Firebase usando esto y ahora cuando compilo mi proyecto obtengo 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 Build.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í:

  1. Si aún no lo hizo, actualice sus ‘Servicios de Google Play’ a la Revisión 30 desde el Administrador de SDK de Android> Extras.

Android SDK Manager/> Extras> Servicios de Google Play”> </p>
<ol start=

  • Y luego agregue la línea compile 'com.android.support:multidex:1.0.1' a sus dependencias (o simplemente elimine multiDexEnabled true si no es obligatorio)

  • Agregue este atributo a la etiqueta de la aplicación en manifest: android:name="android.support.multidex.MultiDexApplication"
    Si ya tiene una clase de aplicación personalizada definida en el Manifiesto de Android, MultiDexApplication desde MultiDexApplication lugar de Application

  • Espero que haya sido de ayuda!

    Usar los últimos servicios de Google Play pero no funcionaba. Para mí este procedimiento está funcionando:

    1. Actualizado mi clase de aplicación:

       public class App extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } } 
    2. Archivo build.gradle actualizado:

       defaultConfig { ... multiDexEnabled true } 
    3. Dependencias incluidas:

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

    Es tan fácil de arreglar chicos. Si estás usando player-services y firebase en tu proyecto, asegúrate de no importar todos los servicios disponibles en google. Solo importa las API que realmente necesitas. Por ejemplo:

      compile 'com.google.firebase:firebase-messaging:9.2.0' compile 'com.google.android.gms:play-services:9.2.0' 

    De esta manera, puede darte ningún error de segundo grado . Para solucionarlo,

    elimina los servicios de juego y sincroniza tu proyecto. Si tiene dependencia, como usar anuncios o mapas en su aplicación, defina la API específica. me gusta:

     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.

    Bajé mi dependencia de google play-service de

     compile 'com.google.android.gms:play-services:9.2.0' 

    a

     compile 'com.google.android.gms:play-services:8.4.0' 

    que resolvió este problema para mí.

    Consulte el siguiente enlace de desbordamiento de stack para obtener una descripción más detallada .

    Nota: al actualizar a la última versión de google play-service
    compile 'com.google.android.gms:play-services:9.4.0' resolvió este problema también.

    O bien, puede importar selectivamente ciertos servicios que necesite, en lugar de importar todos los servicios de google play.

    Paso 1: arregla multidex

    Clase de aplicación:

     public class StudyNApplication extends Application { @Override public void onCreate() { super.onCreate(); MultiDex.install(this); } } 

    Archivo de grado

     defaultConfig { ... multiDexEnabled true } dependencies { compile 'com.android.support:multidex:1.0.0' } 

    Paso 2: arregle java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions

    retirar

     compile 'com.google.android.gms:play-services:9.4.0' 

    Agrega dos lib:

     compile 'com.google.android.gms:play-services-maps:9.4.0' compile 'com.google.android.gms:play-services-location:9.4.0' 

    Funcionó bien

    No lo olvides

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

    Lo resolví agregando esto y bajando la dependencia de play-service a 8.4.0 comstackndo ‘com.google.android.gms: play-services: 8.4.0’

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

    y agregue lo siguiente al manifiesto

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

    Me enfrenté al mismo error cuando incrementé la targetSDKVersion del 22 al 23. Pasé un mínimo de un día entero para resolver el problema. Ahora, finalmente, encuentro el resultado que utiliza api de servicio de reproducción diferente en tu archivo build.gradle Fuente: https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project

    Agregué solo Api’s relevantes y mi aplicación está funcionando bien.

    Creo que encontré una solución para este problema en esta respuesta , por favor, denle un vistazo y gracias a Gabriele Mariotti , él escribió:

    En tu build.gradle de nivel superior, debes agregar:

     buildscript { // ... dependencies { // ... classpath 'com.google.gms:google-services:3.0.0' } } 

    Luego en tu módulo build.gradle:

     apply plugin: 'com.android.application' android { // ... } dependencies { // ... } // ADD THIS AT THE BOTTOM apply plugin: 'com.google.gms.google-services' 
      GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(getString(**R.string.default_web_client_id**)) .requestEmail() .build(); 

    En mi caso, cambié requestIdToken y funcionó.

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

    aplicar el complemento: 'com.google.gms.google-services' .

    Intenta resolverlo…

    en el archivo Gradle

    multiDexEnabled true

    comstackr ‘com.android.support:multidex:1.0.1’

    Archivo manifiesto

    etiqueta de aplicación agregar esta línea

    android: name = “android.support.multidex.MultiDexApplication”

    Configure su aplicación para multidex para resolver este problema.

    Para minSdkVersion 21 o superior configure multiDexEnabled como verdadero en su archivo build.gradle de nivel de módulo, como se muestra a continuación:

     android { defaultConfig { //... minSdkVersion 21 targetSdkVersion 26 multiDexEnabled true } //... } 

    Para minSdkVersion API 20 o inferior

    1. Modifique module-level build.gradle y agregue la biblioteca multidex como una dependencia, como se muestra a continuación:

      android { defaultConfig { ... minSdkVersion 15 targetSdkVersion 26 multiDexEnabled true } //... } dependencies { compile 'com.android.support:multidex:1.0.1' }

    2. Si no anula la clase de la Application , edite su archivo de manifest para configurar android:name en la etiqueta de la aplicación de la siguiente manera

      < ?xml version="1.0" encoding="utf-8"?> //...

      2.1.1. Si invalida la clase de Application Extender Application MultiDexApplication

       public class MyApplication extends MultiDexApplication { //... } 

      2.1.2. O si anula la clase de la Application , pero no es posible cambiar la clase base, puede reemplazar el método attachBaseContext() y llamar a MultiDex.install (esto) para habilitar multidex:

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

    para más mdex-gradle

    Espero que esto ayude a otros que enfrentan el mismo problema.

    Reduzca su dependencia en el archivo build.gradle :

    de:

     compile 'com.google.android.gms:play-services:9.4.0' 

    a:

     compile 'com.google.android.gms:play-services:7.3.0' 

    Esto funcionó en mi caso, espero lo mismo para ti.