java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/R$string;

Dureox picture Dureox · May 16, 2018 · Viewed 9.7k times · Source

I tried out many things, but it does not solve my problem.

Full Error Code (kompletter Error Code):

05-16 09:59:53.428 25010-25010/main.faseflex.de.fgnapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: main.faseflex.de.fgnapp, PID: 25010
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/R$string;
    at com.google.android.gms.common.internal.StringResourceValueReader.<init>(Unknown Source:14)
    at com.google.firebase.FirebaseOptions.fromResource(Unknown Source:2)
    at com.google.firebase.FirebaseApp.initializeApp(Unknown Source:19)
    at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source:4)
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1925)
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1900)
    at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source:23)
    at android.app.ActivityThread.installProvider(ActivityThread.java:6578)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:6133)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6043)
    at android.app.ActivityThread.-wrap1(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764)
    at android.os.Handler.dispatchMessage(Handler.java:105)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6944)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.R$string" on path: DexPathList[[zip file "/data/app/main.faseflex.de.fgnapp-C4iBOV7sIO2cNc4pfCATmA==/base.apk"],nativeLibraryDirectories=[/data/app/main.faseflex.de.fgnapp-C4iBOV7sIO2cNc4pfCATmA==/lib/arm64, /system/lib64, /system/vendor/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    at com.google.android.gms.common.internal.StringResourceValueReader.<init>(Unknown Source:14) 
    at com.google.firebase.FirebaseOptions.fromResource(Unknown Source:2) 
    at com.google.firebase.FirebaseApp.initializeApp(Unknown Source:19) 
    at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source:4) 
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1925) 
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1900) 
    at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source:23) 
    at android.app.ActivityThread.installProvider(ActivityThread.java:6578) 
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:6133) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6043) 
    at android.app.ActivityThread.-wrap1(Unknown Source:0) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764) 
    at android.os.Handler.dispatchMessage(Handler.java:105) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6944) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 

build.gradle app:

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    //buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "main.faseflex.de.fgnapp"
        minSdkVersion 21
        targetSdkVersion 25
        multiDexEnabled true
        dexOptions {
            preDexLibraries true
        }
        versionCode 1
        versionName "0.98.41"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            multiDexKeepFile file('multidex-config.txt')
        }

    }
    productFlavors {
    }
}

dependencies {
    implementation 'com.android.support:support-v4:25.4.0'
    implementation 'com.android.support:support-vector-drawable:25.4.0'
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    implementation 'com.google.firebase:firebase-core:15.0.2'
    implementation 'com.google.firebase:firebase-messaging:15.0.2'
    implementation 'com.google.firebase:firebase-database:15.0.1'
    implementation 'com.google.firebase:firebase-auth:15.1.0'
    implementation 'com.android.support:appcompat-v7:25.4.0'
    implementation 'com.android.support:design:25.4.0'
    implementation 'com.android.support:preference-v7:25.4.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.github.SHashank02051997:FancyToast-Android:0.1.3'
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'com.google.android.gms:play-services-auth:15.0.1'
    testImplementation 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.3.0'
            }
        }
    }
}

build.gradle project:

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

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath 'com.google.gms:google-services:3.2.0'

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

allprojects {
    repositories {
        jcenter()
        google()
        maven {
            url "https://jitpack.io"
        }
        maven {
            url "https://maven.google.com"
        }
    }
}

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

AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="main.faseflex.de.fgnapp"
    tools:node="replace">

    <supports-screens
        android:anyDensity="true"
        android:compatibleWidthLimitDp="50"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="false"
        android:smallScreens="false"
        android:xlargeScreens="false" />

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/fgn_icon"
        android:label="@string/app_name"
        android:resizeableActivity="false"
        android:roundIcon="@mipmap/fgn_icon"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        ------------------------------------------------
        MAIN ACTIVITY
        ------------------------------------------------
        <activity
            android:name=".FGNmainActivity"
            android:label="FGN-App"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        STUNDENPLAN
        ------------------------------------------------
        <activity
            android:name=".activity_timetable"
            android:label="FGN-App | Stundenplan"
            android:parentActivityName=".FGNmainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme">
            <intent-filter>
                <category android:name="android.intent.category.APP_BROWSER" />

                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        ESSENSBESTELLUNG
        ------------------------------------------------
        <activity
            android:name=".activity_food"
            android:label="FGN-App | Essenplan"
            android:parentActivityName=".FGNmainActivity"
            android:theme="@style/AppTheme">
            <intent-filter>
                <category android:name="android.intent.category.APP_BROWSER" />

                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        MDV
        ------------------------------------------------
        <activity
            android:name=".activity_mdv"
            android:label="FGN-App | Verkehrsverbund"
            android:parentActivityName=".FGNmainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme">
            <intent-filter>
                <category android:name="android.intent.category.APP_BROWSER" />

                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        DOKUMENTE
        ------------------------------------------------
        <activity
            android:name=".activity_documents"
            android:label="FGN-App | Dokumente"
            android:parentActivityName=".FGNmainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme">
            <intent-filter>
                <category android:name="android.intent.category.APP_BROWSER" />

                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        NEWS
        ------------------------------------------------
        <activity
            android:name=".activity_news"
            android:label="FGN-App | News"
            android:parentActivityName=".FGNmainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme">
            <intent-filter>
                <category android:name="android.intent.category.APP_BROWSER" />

                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        LEHRER
        ------------------------------------------------
        <activity
            android:name=".activity_teachers"
            android:label="FGN-App | Lehrer"
            android:parentActivityName=".FGNmainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme">
            <intent-filter>
                <category android:name="android.intent.category.APP_BROWSER" />

                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        MOODLE
        ------------------------------------------------
        <activity
            android:name=".activity_moodle"
            android:label="FGN-App | Moodle"
            android:parentActivityName=".FGNmainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme">
            <intent-filter>
                <category android:name="android.intent.category.APP_BROWSER" />

                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        OFFICE 365
        ------------------------------------------------
        <activity
            android:name=".activity_office"
            android:label="FGN-App | Office 365"
            android:parentActivityName=".FGNmainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme">
            <intent-filter>
                <category android:name="android.intent.category.APP_BROWSER" />

                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        KONTAKT
        ------------------------------------------------
        <activity
            android:name=".activity_contact"
            android:label="FGN-App | Kontakt"
            android:parentActivityName=".FGNmainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme">
            <intent-filter>
                <category android:name="android.intent.category.APP_BROWSER" />

                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        TERMINE
        ------------------------------------------------
        <activity
            android:name=".activity_termine"
            android:label="FGN-App | Termine"
            android:parentActivityName=".FGNmainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme">
            <intent-filter>
                <category android:name="android.intent.category.APP_BROWSER" />

                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        MITTAGSBAND
        ------------------------------------------------
        <activity
            android:name=".activity_mittagsband"
            android:label="FGN-App | Mittagsband"
            android:parentActivityName=".FGNmainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme">
            <intent-filter>
                <category android:name="android.intent.category.APP_BROWSER" />

                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        FEEDBACK
        ------------------------------------------------
        <activity
            android:name=".activity_menu_feedback"
            android:label="FGN-App | Feedback"
            android:parentActivityName=".SettingsActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme">
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT" />

                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        IMPRESSUM
        ------------------------------------------------
        <activity
            android:name=".activity_menu_impressum"
            android:label="FGN-App | Impressum"
            android:parentActivityName=".FGNmainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme">
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT" />

                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        FIREBASE
        ------------------------------------------------
        <service android:name=".MyFirebaseMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
        <service android:name=".FirebaseIDService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
        </service>
        <service android:name=".MyInstanceIDListenerService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
        </service>
        ------------------------------------------------
        EINSTELLUNGEN
        ------------------------------------------------
        <activity
            android:name=".SettingsActivity"
            android:label="FGN-App | Einstellungen"
            android:parentActivityName=".FGNmainActivity">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="main.faseflex.de.fgnapp.FGNmainActivity" />
        </activity>
        ------------------------------------------------
        SPLASH SCREEN
        ------------------------------------------------
        <activity
            android:name=".SplashActivity"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        ------------------------------------------------
        CHANGELOG
        ------------------------------------------------
        <activity
            android:name=".ChangelogActivity"
            android:label="FGN-App | Changelog"
            android:parentActivityName=".SettingsActivity"></activity>
    </application>



</manifest>

I know what the NoClassDefFoundError does, but I did not find the problem. Ask if you need more files for solving the problem.

Answer

Arshak picture Arshak · Feb 25, 2020

If you are using Realm plugin in your app, then you could try upgrading your plugin as it was one of the reason why app crashed while running.


Steps to update realm plugin:

  • Open build.gradle(Project: Project_name_here) file.
  • Replace classpath of realm gradle plugin with the latest stable version as follows:
  • classpath "io.realm:realm-gradle-plugin:7.0.0"


Also, please check for any outdated plugins within build.gradle file as it may be one of the reason why the app crashes.


OR

I faced similar issue after updating Android Studio to 3.6 with Gradle 3.6.0.

I downgraded my Gradle to 3.5.3 in-order to resolve this issue until it gets fixed in future.


Steps:

  • Open build.gradle(Project: Project_name_here) file.
  • Replace classpath of android tools build gradle under dependencies with the following:
  • classpath 'com.android.tools.build:gradle:3.5.3'



Please Note: This is a temporary fix. It may get fixed in future, so until then downgrade and continue with app development.