带有Gradle插件版本3.6.1和Gradle版本5.6.4的Android Studio 3.6.1无法正常工作

时间:2020-03-03 05:46:14

标签: android firebase android-studio android-gradle-plugin android-studio-3.6

我的应用程序运行良好。我刚刚更新了 Android Studio 3.6.1

更新Android Studio后,出现此对话框,我将如下更新Gradle插件的版本。

{{3}}

更新后,我的应用程序崩溃并出现以下错误。

$('#is_active').submit();

我的项目级别 build.gradle 是:

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/R$string;
        at com.google.android.gms.common.internal.StringResourceValueReader.<init>(Unknown Source:4)
        at com.google.firebase.FirebaseOptions.fromResource(com.google.firebase:firebase-common@@19.3.0:156)
        at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@19.3.0:244)
        at com.google.firebase.provider.FirebaseInitProvider.onCreate(com.google.firebase:firebase-common@@19.3.0:51)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1940)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1915)
        at com.google.firebase.provider.FirebaseInitProvider.attachInfo(com.google.firebase:firebase-common@@19.3.0:45)
        at android.app.ActivityThread.installProvider(ActivityThread.java:6770)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:6317)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6232)
        at android.app.ActivityThread.access$1200(ActivityThread.java:237)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1792)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7078)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:974)

我的应用程序级别 build.gradle 是:

buildscript {
    ext.objectboxVersion = '2.5.0'
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.1'
        classpath 'com.google.gms:google-services:4.3.3'

        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.2.1"
        classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files

        // Add dependency
        classpath 'io.fabric.tools:gradle:1.31.0'
    }
}

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

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

我尝试过的只有一种解决方案是还原Gradle的版本 我已经更新了,但是如果我想使用最新版本怎么办。

更新:

我的一个项目正在使用某些版本的 Android Studio 和Gradle。这是Firebase SDK在两个项目中都不同的地方,所以我 我以为Firebase是Project。

有帮助吗?我该怎么办?

8 个答案:

答案 0 :(得分:3)

我尝试了多种方法来解决此问题,如下所示:

第一个解决方案:我已经尝试了 Mayur Sojitra 的解决方案,并且该解决方案工作了一天。 (第二天我又遇到了同样的问题。)

第二个解决方案:我试图使用3.5.0的较低版本的Gradle还原,该版本正在运行,但我只想使用最新版本。 (如何找到新的解决方案)

第三个解决方案::我正在使用Firebase依赖项,并且由于Firebase版本与Gradle发生冲突,我认为该错误即将到来,因此我更新了所有Firebase存储库。 (也许这对您也有用)

第四种解决方案::我使用了 ObjectBox 库,因此将该版本更新为最新的2.5.1。

第五个解决方案:最后,我发现了一个问题,即我的Internet连接受到限制(按照公司规则),并且My Gradle和其他依赖项未成功下载,因此我认为更新所有依赖项并成功下载了将是这个怪异问题的解决方案。

如果您有任何疑问或仍然遇到问题,请告诉我。

谢谢。

答案 1 :(得分:2)

buildToolsVersion "29.0.2"

build.gradle删除此行

答案 2 :(得分:1)

似乎您正在将旧的fabric&crashlytics与新的firebase&crashlytics混合使用。试试:

项目级别 build.gradle

buildscript {
    ext.objectboxVersion = '2.5.0'
    repositories {
        google()
        jcenter()
//        maven {
//            url 'https://maven.fabric.io/public'
//        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.1'
        classpath 'com.google.gms:google-services:4.3.3'

        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.2.1"
        classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files

        // Add dependency
//        classpath 'io.fabric.tools:gradle:1.31.0'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.1.0'
    }
}

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

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

应用程序级别build.gradle:

apply plugin: 'com.android.application'
apply plugin: "androidx.navigation.safeargs"
//apply plugin: 'io.fabric'
apply plugin: 'com.google.firebase.crashlytics'

android {
    compileSdkVersion 29
//    buildToolsVersion "29.0.2"    // buildtools is now automatically determined, based on compileSDKVersion
    defaultConfig {
        applicationId "com.sohamerp.marsremedies"
        minSdkVersion 19
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
        multiDexEnabled true
    }
    dataBinding {
        enabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
}

dependencies {
    //implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.navigation:navigation-fragment:2.2.1'
    implementation 'androidx.navigation:navigation-ui:2.2.1'

    implementation 'androidx.multidex:multidex:2.0.1'

    implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
    testImplementation 'junit:junit:4.13'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.2.0-alpha05'

    implementation 'com.github.mukeshsolanki:android-otpview-pinview:2.1.0'

    implementation 'com.squareup.retrofit2:retrofit:2.7.1'
    implementation 'com.squareup.retrofit2:converter-gson:2.7.1'
    implementation 'com.squareup.okhttp3:logging-interceptor:4.4.0'

    implementation 'com.google.android.gms:play-services-location:17.0.0'
    implementation 'com.google.firebase:firebase-core:17.2.2'
    implementation 'com.google.firebase:firebase-auth:19.2.0'
    implementation 'com.google.firebase:firebase-messaging:20.1.0'
//    implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
    implementation 'com.google.firebase:firebase-crashlytics:17.0.0'

    implementation 'com.github.bumptech.glide:glide:4.11.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
    annotationProcessor 'androidx.annotation:annotation:1.1.0'

    implementation "com.github.firdausmaulan:GlideSlider:1.5.1"

    implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0'

    implementation 'org.greenrobot:eventbus:3.1.1'

    debugImplementation "io.objectbox:objectbox-android-objectbrowser:$objectboxVersion"
    releaseImplementation "io.objectbox:objectbox-android:$objectboxVersion"

    implementation 'com.intuit.sdp:sdp-android:1.0.6'
}
// apply the plugin after the dependencies block

apply plugin: 'com.google.gms.google-services'
apply plugin: 'io.objectbox'

答案 3 :(得分:0)

如果您仍在查看此内容,那么我刚刚对3.6.2进行了更新,它专门在重启后立即进行了一些与Firebase相关的更新(尽管我的代码不使用Firebase ..)。

答案 4 :(得分:0)

我遇到了同样的错误。但是,我通过以下方式成功构建。

- classpath 'com.google.firebase:firebase-plugins:1.1.1'
+ classpath 'com.google.firebase:firebase-plugins:1.2.0'

答案 5 :(得分:0)

可能的解决方案:

升级顶级build.gradle中的插件版本。

详细信息:

我将Gradle版本从5.4.1升级到5.6.4,插件版本也从3.5.3升级到3.6.2,然后遇到了该类找不到的问题

我在项目中使用了Realm,顶层build.gradle是:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    /.../
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.2'
        classpath "io.realm:realm-gradle-plugin:5.8.0"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

此问题似乎是某些库/插件未处理R中的R.jar类,而是在Gradle插件版本大于R.java之后的3.6.0中。有关详细信息,请参见here

解决方案是将Realm升级到新版本,对我来说是6.0.2。有关详细信息,请参见here

    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.2'
        classpath "io.realm:realm-gradle-plugin:6.0.2" // <- modify
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }

答案 6 :(得分:0)

5.6.4级有一些同步问题。转到gradle-wrapper.properties并更改网址 对此

distributionUrl = https://services.gradle.org/distributions/gradle-6.0-all.zip

答案 7 :(得分:0)

我尝试了来自stackoverflow(这里),github论坛等的许多建议。 检查gradle和gradle插件版本是否存在兼容性问题。 仅适用于: 我清理了.idea和.gradle文件,退出AndroidS,然后在Android Studio上打开react native proj,并从file中打开了android文件夹,然后等待android studio完成索引(这次确实等待),按hammer图标进行构建,然后再次耐心等待,并成功在模拟器上运行。

我没等过,我想我没想到Android Studio花费了这么多时间来索引运行-构建

如果有人仍然困住,钥匙在等我,我祝你好运