Внезапно получая Firebase java .lang.IllegalAccessError при запуске приложения - PullRequest
3 голосов
/ 29 января 2020

внезапно происходит взлом sh при первоначальном запуске приложения после установки ! Но только в первый раз ... после второго открытия приложения оно работает правильно.

Я не изменяю код firebase, но, возможно, зависимость ... но до последней версии ... так обычно это должно быть стабильный!

Кажется, что есть некоторые проблемы, связанные с firebase:

java .lang.IllegalAccessError: Недопустимый доступ к классу: 'com. google.firebase.messaging.zze 'пытается получить доступ к com.google.firebase.iid.zzat' (объявление base.gap.firebase.messaging.zze 'появляется в base.apk)

Мои конфигурации:

Build.gradle (Project)

buildscript {
    ext.kotlin_version = '1.3.61'
    repositories {
        google()
        jcenter()
        maven { url 'https://plugins.gradle.org/m2/' } //for OneSignal
        maven { url 'https://maven.fabric.io/public' } //for CrashLytics
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        classpath 'com.google.gms:google-services:4.3.3'
        classpath 'io.fabric.tools:gradle:1.31.0'  // Crashlytics plugin

        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.12.5' //for OneSignal

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

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

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

******* ********** Build.gradle (Модуль: приложение) ***************************

apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

apply plugin: 'com.android.application'

apply plugin: 'io.fabric'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

apply plugin: 'kotlin-kapt'

android {
    signingConfigs {
        release {
               ....
        }
        debug {
            ....
        }
        staging {
            ....
        }
    }
    compileSdkVersion 29
    defaultConfig {
        applicationId "com.myapp"
        minSdkVersion 26
        targetSdkVersion 29
        versionCode 43
        versionName "1.0.20"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

        manifestPlaceholders = [
                onesignal_app_id               : '....',
                // Project number pulled from dashboard, local value is ignored.
                onesignal_google_project_number: 'REMOTE'
        ]
    }
    buildTypes {
        debug {
            minifyEnabled false
            debuggable true
            buildConfigField "String", "BASE_URL", "\"http://....:8080\"" //http://....:8080
//            buildConfigField "String", "BASE_URL", "\"http://....:8080/....\"" //http://...:8080
        }
        staging {
            minifyEnabled false
            debuggable true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            buildConfigField "String", "BASE_URL", "\"http://....:8080/....\""
            signingConfig signingConfigs.staging
        }
        release {
            minifyEnabled false
            debuggable false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            buildConfigField "String", "BASE_URL", "\"http://....:8080/....\""
            signingConfig signingConfigs.release
        }
    }

    //Google introduced a new App Bundle format to split apk files in smaller sizes when they’re being installed on the client devices.
    //However, this means that we cannot have dynamic language changes in our applications.
    //To prevent that split for language files we need to add extra lines in our build.gradle file inside the app folder like below.
    bundle {
        language {
            enableSplit = false //this setting is needed to enable dynamic switch of language in app.
        }
    }

    dataBinding {
        enabled true
    }

}

//Date for APK File name (info: When deploying on Google Play Store, this date will be included in VersionName as suffix, e.g. 1.0_2019-07-12)
static def getDate() {
    def date = new Date()
    def formattedDate = date.format('YYYY-MM-dd')
    return formattedDate
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'com.google.android.material:material:1.0.0' //1.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    //Android Architecture Components
    implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
    implementation 'androidx.lifecycle:lifecycle-viewmodel:2.2.0'

    //OkHttp OAuth2 client
    implementation 'ca.mimic:oauth2library:2.4.2'

    //Anko
    implementation "org.jetbrains.anko:anko:0.10.8"

    //Firebase
    implementation 'com.google.firebase:firebase-core:17.2.2'
    implementation 'com.google.firebase:firebase-auth:19.2.0'

    //Crashlytics
    implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'

    implementation 'androidx.cardview:cardview:1.0.0'

    //Google Maps
    implementation 'com.google.android.gms:play-services-maps:17.0.0'

    //OneSignal
    implementation 'com.onesignal:OneSignal:3.10.9'

    //Picasso
    implementation 'com.squareup.picasso:picasso:2.71828'

    //GIF ImageView
    //implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.15'

    //Jackson
    implementation "com.fasterxml.jackson.module:jackson-module-kotlin:2.9.8"

    //Volley
    implementation 'com.android.volley:volley:1.1.1'

    //SegmentedButton
    implementation 'com.github.ceryle:SegmentedButton:v2.0.2'

    //EasyValidation
    implementation "com.wajahatkarim3.easyvalidation:easyvalidation-core:1.0.1"

    //QuickPermissions-Kotlin
    implementation 'com.github.quickpermissions:quickpermissions-kotlin:0.4.0'

}

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

1 Ответ

3 голосов
/ 29 января 2020

В соответствии с официальным делом c:

Больше не добавляйте Android библиотеку com.google.firebase: firebase-core . Этот SDK включал Firebase SDK для Google Analytics . Теперь, чтобы использовать Analytics (или любой из продуктов Firebase, которые требуют или рекомендуют использовать Analytics), вам нужно явно добавить зависимость Analytics:

com.google.firebase: firebase-analytics: 17.2.2

Итак, нет необходимости добавлять com.google.firebase:firebase-core в ваш проект. Удалить его

...