android - 如何解决 NoClassDefFoundError : Failed resolution of: Lcom/google/android/gms/common/R$string on Android 的问题

标签 android firebase android-gradle-plugin build.gradle noclassdeffounderror

最近,我遇到了一个我一周都无法解决的问题,阅读不同来源的建议。但是,没有任何帮助。
所以,问题出在 NoClassDefFoundError 升级后出现的:

  • Gradle 包装器从 5.x 到 6.x
  • Gradle 构建工具
  • Firebase 依赖项(实际上是这些类带来了我遇到的问题)

  • 我已经尝试解决的问题:
  • 试图降级 Firbase 库(我只有核心、广告和分析)
  • 试图禁用传递 基本网依赖
  • 尝试申请 Material list 同步依赖项
  • 尝试升级/降级 android 构建插件
  • 试图找到现有 green-dao 版本的问题,但看起来不错

  • 这是我的 的依赖项build.gradle 文件:
    
    dependencies {
    
        implementation "com.jakewharton.timber:timber:$timberVersion"
    
        //Reactive
        implementation group: 'io.reactivex.rxjava2', name: 'rxjava', version: rxJavaVersion
        implementation group: 'io.reactivex.rxjava2', name: 'rxandroid', version: androidRxJavaVersion
    
        // Firebase dependencies
        implementation platform("com.google.firebase:firebase-bom:$androidFirebaseBomVersion")
    
        implementation 'com.google.firebase:firebase-core'
        implementation 'com.google.firebase:firebase-ads'
        implementation 'com.google.firebase:firebase-crashlytics'
    
        // Android lifecycle
        implementation "androidx.lifecycle:lifecycle-runtime:$androidLifeCycleVersion"
        implementation "androidx.lifecycle:lifecycle-extensions:$androidLifeCycleVersion"
        implementation 'androidx.legacy:legacy-support-v4:1.0.0'
        annotationProcessor "androidx.lifecycle:lifecycle-compiler:$androidLifeCycleVersion"
    
        // Android support
        //TODO once can be replaced with com.google.android.material
        implementation "com.google.android.material:material:$androidMaterialVersion"
        implementation 'androidx.browser:browser:1.0.0'
        implementation 'androidx.legacy:legacy-support-v4:1.0.0'
        implementation "androidx.appcompat:appcompat:$androidAppCompatVersion"
        implementation "androidx.constraintlayout:constraintlayout:$androidSupportConstraintLayoutVersion"
    
        implementation 'androidx.multidex:multidex:2.0.1'
    
        implementation "com.squareup.okhttp3:okhttp:$okHttpVersion"
    
        // Dependency injection (Dagger)
        implementation "com.google.dagger:dagger:$daggerVersion"
        implementation "com.google.dagger:dagger-android:$daggerVersion"
        annotationProcessor "com.google.dagger:dagger-android-processor:$daggerVersion"
        annotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
    
        // Database
        implementation "org.sqldroid:sqldroid:$sqlDroidVersion"
        implementation "org.flywaydb:flyway-core:$flywayVersion"
    
        // UI
        implementation "com.afollestad.material-dialogs:core:$materialDialogsVersion"
        implementation "com.github.hotchemi:android-rate:$androidRateVersion"
        implementation 'androidx.cardview:cardview:1.0.0'
        implementation "com.nex3z:flow-layout:$flowLayoutVersion"
    
        // Utils
        implementation "com.annimon:stream:$streamVersion"
        implementation "com.google.code.findbugs:jsr305:$findBugsVersion"
        implementation "net.objecthunter:exp4j:$exp4jVersion"
    
        // Checkout
        implementation "org.solovyev.android:checkout:$checkoutVersion"
    
        /**
         * Test dependencies
         */
        // Unit tests
        testImplementation group: 'org.hamcrest', name: 'hamcrest-all', version: hamcrestAllVersion
        testImplementation("junit:junit:$junitVersion") {
            exclude group: 'org.hamcrest', module: 'hamcrest-core'
        }
        testImplementation group: 'org.mockito', name: 'mockito-core', version: mockitoVersion
        testImplementation('androidx.arch.core:core-testing:2.1.0') {
            exclude group: "com.android.support", module: "support-annotations"
        }
        testImplementation 'net.sf.kxml:kxml2:2.3.0'
    
        // Integration tests
        androidTestImplementation "junit:junit:$junitVersion"
    
        // Espresso dependencies
        androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
        androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion"
        androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion"
        androidTestImplementation "com.google.code.findbugs:jsr305:$jsr305Version"
    
        androidTestImplementation "androidx.test:runner:$testRunnerVersion"
        androidTestImplementation "androidx.test:rules:$testRunnerVersion"
        androidTestUtil "androidx.test:orchestrator:$testOrchestratorVersion"
    
        androidTestImplementation "commons-io:commons-io:$commonsIOVersion"
        androidTestImplementation group: 'com.google.guava', name: 'guava', version: guavaVersion
    
        // Spoon
        androidTestImplementation "com.squareup.spoon:spoon-client:$spoonClientVersion"
    }
    
    这是堆栈跟踪:
    09-15 11:07:13.467  1129  1129 E AndroidRuntime: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/R$string;                                                                                                                                                                                                            
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at com.google.android.gms.common.internal.StringResourceValueReader.<init>(Unknown Source)                                                                                                                                                                                                         
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at com.google.firebase.FirebaseOptions.fromResource(FirebaseOptions.java:156)                                        
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:244)                                                                                                                                                                                                                             
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:51)                                                                                                                                                                                                        
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at android.content.ContentProvider.attachInfo(ContentProvider.java:1759)                                             
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at android.content.ContentProvider.attachInfo(ContentProvider.java:1734)                                                                                                                                                                                                                           
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:45)                        
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at android.app.ActivityThread.installProvider(ActivityThread.java:6420)                                              
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6012)                                                                                                                                                                                                                    
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5951)                                                                                                                                                                                                                      
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at android.app.ActivityThread.-wrap3(ActivityThread.java)                                                                                                                                                                                                                                          
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1710)                                                                                                                                                                                                                            
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:102)                                                                                                                                                                                                                                            
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:154)                                                                                                                                                                                                                                                         
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:6776)                                                                                                                                                                                                                                       
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)                                                                                                                                                                                                                                                  
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)                                                                                                                                                                                                                
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)                                                                                                                                                                                                                                   
    09-15 11:07:13.467  1129  1129 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.R$string" on path: DexPathList[[zip file "/data/app/com.myestimates.buildercalcfree-2/base.apk"],nativeLibraryDirectories=[/data/app/com.myestimates.buildercalcfree-2/lib/arm, /system/lib, /vendor/lib]]  
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)                                            
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at java.lang.ClassLoader.loadClass(ClassLoader.java:380)                                                                                                                                                                                                                                           
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)                                                             
    09-15 11:07:13.467  1129  1129 E AndroidRuntime:        ... 18 more
    
    也许这是一个常见的问题,但我不知道如何处理它。
    谢谢

    最佳答案

    因此,经过几天的挖掘,我找到了解决方案。所以,为了让它工作,我必须:

  • 降级 Android Gradle 插件 到 3.5.3 版本
  • 降级 戈登插件到 1.0.6 版本
  • 已迁移 fabric-crashlytic firebase-crashlytic .加上最后一个插件,否则会出错。

  • 可以设置所有其他更新,但这 3 项必须坚持提到的版本。

    关于android - 如何解决 NoClassDefFoundError : Failed resolution of: Lcom/google/android/gms/common/R$string on Android 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63898832/

    相关文章:

    android - 资源链接

    java - 如何在 smali 函数中返回静态结果

    AngularJS HTML5Mode

    javascript - 将用户属性设置为 firebase-admin

    java - 动画菜单实现

    android - 如何在 Android 中创建可重用的 Activity?

    android - 错误 : "Version code not found in manifest."

    android - 从 asynctask android 获取字符串

    android - 是否需要在 android list 中设置最大值?

    android - APK LICENSE 中复制的重复文件(同一文件)