突然在应用程序启动时获得Firebase java.lang.IllegalAccessError



安装后应用程序初始启动时突然发生崩溃!但这只是第一次...第二次打开应用程序后,它可以正常工作。

我没有更改火力代码,但也许是依赖项...但是到最新版本...所以通常它应该是一个稳定的!

它似乎有一些与火力基地有关的问题:

java.lang.IllegalAccessError: 非法类访问: 'com.google.firebase.messaging.zze' 尝试访问 'com.google.firebase.iid.zzat' (声明 "com.google.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 (Module:app(

******
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'

根据官方文档:

不再添加 Android 库com.google.firebase:firebase-core。 此 SDK 包括用于Google Analytics的 Firebase SDK。现在,使用 分析(或任何需要或推荐的 Firebase 产品 分析的使用(,您需要明确添加分析 屬地:

com.google.firebase:firebase-analytics:17.2.2

因此,无需在项目中添加com.google.firebase:firebase-core 删除它

最近我想出了这样的问题。错误是相同的,所以我应用了上述解决方案,但它不适用于我的项目。对我有用的是添加另一个 firebase 库"com.google.firebase:firebase-messaging:20.2.4",事实证明我实际上因为没有在我的项目上使用的所有库而收到错误。 请参阅所有Firebase库的官方文档。

最新更新