Android Studio 3.6.1 с Gradle Plugin версии 3.6.1 и Gradle версии 5.6.4 не работает - PullRequest
3 голосов
/ 03 марта 2020

Мое приложение работает очень хорошо. Я только что обновил Android Studio 3.6.1 ,

После обновления Android Studio я получил это диалоговое окно и собираюсь обновить версию Gradle Plugin, как показано ниже.

enter image description here

После обновления у меня происходит сбой приложения и появляются следующие ошибки.

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)

Мой уровень проекта сборка. 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
}

и мой уровень приложения build.gradle :

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: "androidx.navigation.safeargs"

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    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.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'

Есть только одно решение, которое у меня есть попытался вернуть обратно версию Gradle, которую я обновил, но что, если я хочу использовать последние версии.

Обновление:

Один из моих проектов работает с какая-то версия Android Studio и Gradle. Вот Firebase SDK отличается в обоих проектах, поэтому я думаю, что Firebase это Project.

Любая помощь? Что мне делать?

Ответы [ 7 ]

3 голосов
/ 03 марта 2020
buildToolsVersion "29.0.2"

удалить эту строку из build.gradle

1 голос
/ 04 марта 2020

Я пробовал много способов решить эту проблему следующим образом:

1-е решение: Я пробовал решение Mayur Sojitra , и оно работало в течение одного дня , (На следующий день у меня снова возникла та же проблема.)

2-е решение: Я попытался вернуться с более низкой версией Gradle, которая является 3.5.0, и она работает, но я хотел используйте только последнюю версию. (Способ найти новое решение)

3-е решение: Я использую зависимости Firebase, и я подумал, что ошибка возникает из-за конфликта версий Firebase с Gradle, поэтому я обновил все хранилище Firebase , (Возможно, это также работает для вас)

4-е решение: Я использовал библиотеку ObjectBox , поэтому обновил эту версию до последней версии 2.5.1.

5-е решение: Наконец-то я обнаружил проблему, состоящую в том, что My Inte rnet Соединение ограничено (согласно правилам компании), и My Gradle и другие зависимости не загружаются успешно, поэтому я подумал обновить все зависимости и загрузить его успешно решит этот странный вопрос.

Сообщите мне, если у вас есть какие-либо вопросы или у вас возникла проблема.

Спасибо.

0 голосов
/ 06 мая 2020

Я перепробовал много предложений от stackoverflow (здесь), форумы github et c. Проверены версии Gradle и Gradle Plugin, если есть какие-либо проблемы с совместимостью. Работало только: я очищаю .idea и .gradle файл, выхожу из AndroidS и открываю свой реактивный нативный проект в Android studio, и я открывал из file выбор папки android, после чего ждал android studio fini sh индексирование (на самом деле ждали этого времени) и нажмите значок hammer для сборки, снова терпеливо ждите и успешно запускайте сборку на симуляторе.

Я раньше не ждал, наверное, я не представлял, что Android студия тратит так много времени на индексирование-прогон-сборку

Я делюсь информацией, если кто-то все еще застрял, ключ ждал меня, удачи

0 голосов
/ 24 апреля 2020

gradle 5.6.4 с некоторой проблемой syn c. go в gradle-wrapper.properties и измените URL на этот

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

0 голосов
/ 16 апреля 2020

Возможное решение:

Обновление версии плагинов верхнего уровня build.gradle.

Подробно:

Я обновил версию Gradle с 5.4.1 до 5.6.4, и версия плагина от 3.5.3 до 3.6.2, а затем я столкнулся с проблемой, которую класс не смог найти.

Я использовал Realm в проекте и на верхнем уровне build.gradle is:

// 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, но в R.java после версии плагина Gradle больше 3.6.0. См. здесь для деталей.

И решение состоит в том, чтобы обновить Realm до более новой версии, для меня это 6.0.2. Подробнее см. здесь .

    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"
    }
0 голосов
/ 09 апреля 2020

Я столкнулся с той же ошибкой. Тем не менее, мне удалось построить следующим образом.

- classpath 'com.google.firebase:firebase-plugins:1.1.1'
+ classpath 'com.google.firebase:firebase-plugins:1.2.0'
0 голосов
/ 04 апреля 2020

Если вы все еще смотрите на это, я только что получил обновление до 3.6.2, и оно специально сделало некоторое обновление, связанное с firebase (хотя мой код не использует firebase ..) сразу после перезапуска.

...