【发布时间】:2019-09-04 14:45:43
【问题描述】:
我的应用 (HouseLog) 正在生产中,我遇到了仅在 Android 5 和 6 上发生的 Firebase Firestore 崩溃。崩溃很好地解释了正在发生的事情,但我不知道如何实际修复它.我假设这是 Gradle 文件的问题。崩溃发生在线FirebaseFirestore.getInstance().collection("Users")
Fatal Exception: java.lang.RuntimeException: Internal error in Firestore (19.0.0).
at com.google.firebase.firestore.util.AsyncQueue.lambda$panic$5(AsyncQueue.java)
at com.google.firebase.firestore.util.AsyncQueue$$Lambda$5.run(AsyncQueue.java)
at android.os.Handler.handleCallback + 742(Handler.java:742)
at android.os.Handler.dispatchMessage + 95(Handler.java:95)
at android.os.Looper.loop + 157(Looper.java:157)
at android.app.ActivityThread.main + 5601(ActivityThread.java:5601)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 774(ZygoteInit.java:774)
at com.android.internal.os.ZygoteInit.main + 652(ZygoteInit.java:652)
Caused by java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/firestore/c/Ja;
at com.google.firebase.firestore.local.SQLiteSchema.ensureSequenceNumbers(SQLiteSchema.java)
at com.google.firebase.firestore.local.SQLiteSchema.addSequenceNumber(SQLiteSchema.java)
at com.google.firebase.firestore.local.SQLiteSchema.addSequenceNumber(SQLiteSchema.java)
at com.google.firebase.firestore.local.SQLitePersistence$OpenHelper.onCreate(SQLitePersistence.java)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked + 251(SQLiteOpenHelper.java:251)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase + 163(SQLiteOpenHelper.java:163)
at com.google.firebase.firestore.local.SQLitePersistence.start(SQLitePersistence.java)
at com.google.firebase.firestore.core.FirestoreClient.getDocumentsFromLocalCache(FirestoreClient.java)
at com.google.firebase.firestore.core.FirestoreClient.getDocumentsFromLocalCache(FirestoreClient.java)
at com.google.firebase.firestore.core.FirestoreClient$$Lambda$2.run(FirestoreClient.java)
at com.google.firebase.firestore.util.AsyncQueue.lambda$enqueue$4(AsyncQueue.java)
at com.google.firebase.firestore.util.AsyncQueue$$Lambda$4.call(AsyncQueue.java)
at com.google.firebase.firestore.util.AsyncQueue.lambda$enqueue$3(AsyncQueue.java)
at com.google.firebase.firestore.util.AsyncQueue$$Lambda$3.run(AsyncQueue.java)
at java.util.concurrent.Executors$RunnableAdapter.call + 423(Executors.java:423)
at java.util.concurrent.FutureTask.run + 237(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201 + 154(ScheduledThreadPoolExecutor.java:154)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run + 269(ScheduledThreadPoolExecutor.java:269)
at java.util.concurrent.ThreadPoolExecutor.runWorker + 1113(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run + 588(ThreadPoolExecutor.java:588)
at com.google.firebase.firestore.util.AsyncQueue$DelayedStartFactory.run(AsyncQueue.java)
at java.lang.Thread.run + 818(Thread.java:818)
Caused by java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.firestore.c.Ja" on path: DexPathList[[zip file "/data/app/chenige.chkchk.wairz-1/base.apk", zip file "/data/app/chenige.chkchk.wairz-1/split_config.xhdpi.apk"],nativeLibraryDirectories=[/data/app/chenige.chkchk.wairz-1/lib/arm64, /vendor/lib64, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass + 56(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass + 511(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass + 469(ClassLoader.java:469)
at com.google.firebase.firestore.local.SQLiteSchema.ensureSequenceNumbers(SQLiteSchema.java)
at com.google.firebase.firestore.local.SQLiteSchema.addSequenceNumber(SQLiteSchema.java)
at com.google.firebase.firestore.local.SQLiteSchema.addSequenceNumber(SQLiteSchema.java)
at com.google.firebase.firestore.local.SQLitePersistence$OpenHelper.onCreate(SQLitePersistence.java)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked + 251(SQLiteOpenHelper.java:251)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase + 163(SQLiteOpenHelper.java:163)
at com.google.firebase.firestore.local.SQLitePersistence.start(SQLitePersistence.java)
at com.google.firebase.firestore.core.FirestoreClient.getDocumentsFromLocalCache(FirestoreClient.java)
at com.google.firebase.firestore.core.FirestoreClient.getDocumentsFromLocalCache(FirestoreClient.java)
at com.google.firebase.firestore.core.FirestoreClient$$Lambda$2.run(FirestoreClient.java)
at com.google.firebase.firestore.util.AsyncQueue.lambda$enqueue$4(AsyncQueue.java)
at com.google.firebase.firestore.util.AsyncQueue$$Lambda$4.call(AsyncQueue.java)
at com.google.firebase.firestore.util.AsyncQueue.lambda$enqueue$3(AsyncQueue.java)
at com.google.firebase.firestore.util.AsyncQueue$$Lambda$3.run(AsyncQueue.java)
at java.util.concurrent.Executors$RunnableAdapter.call + 423(Executors.java:423)
at java.util.concurrent.FutureTask.run + 237(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201 + 154(ScheduledThreadPoolExecutor.java:154)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run + 269(ScheduledThreadPoolExecutor.java:269)
at java.util.concurrent.ThreadPoolExecutor.runWorker + 1113(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run + 588(ThreadPoolExecutor.java:588)
at com.google.firebase.firestore.util.AsyncQueue$DelayedStartFactory.run(AsyncQueue.java)
at java.lang.Thread.run + 818(Thread.java:818)
这是我应用的 build.gradle。
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'io.fabric'
android {
compileSdkVersion 28
defaultConfig {
applicationId "chenige.chkchk.wairz"
minSdkVersion 21
targetSdkVersion 28
versionCode 22
versionName "1.4.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
signingConfig signingConfigs.releaseconfig
resConfigs "en"
}
buildTypes {
release {
minifyEnabled true
debuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
compileOptions {
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.google.android.material:material:1.0.0'
// FirebaseUI for Firebase Realtime Database
implementation 'com.firebaseui:firebase-ui-database:5.1.0'
// FirebaseUI for Cloud Firestore
implementation 'com.firebaseui:firebase-ui-firestore:5.1.0'
// FirebaseUI for Firebase Auth
implementation 'com.firebaseui:firebase-ui-auth:5.1.0'
// FirebaseUI for Cloud Storage
implementation 'com.firebaseui:firebase-ui-storage:5.1.0'
implementation 'com.google.firebase:firebase-analytics:17.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.gms:google-services:4.3.1'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
implementation 'com.github.AppIntro:AppIntro:5.1.0'
testImplementation 'junit:junit:4.12'
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'uk.co.markormesher:android-fab:2.2.2'
implementation 'de.hdodenhof:circleimageview:2.2.0'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.github.faranjit:currency-edittext:1.0.1'
implementation 'com.makeramen:roundedimageview:2.3.0'
implementation 'com.opencsv:opencsv:4.5'
implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0'
implementation 'com.elconfidencial.bubbleshowcase:bubbleshowcase:1.3.1'
implementation "com.leinardi.android:speed-dial:3.0.0"
implementation 'com.codemybrainsout.rating:ratingdialog:1.0.8'
}
configurations {
all {
exclude module: 'commons-logging'
}
}
apply plugin: 'com.google.gms.google-services'
repositories {
mavenCentral()
}
这是我项目的 build.gradle
buildscript {
ext.kotlin_version = '1.3.41'
repositories {
google()
jcenter()
maven {
url 'https://maven.fabric.io/public'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
// Add dependency
classpath 'io.fabric.tools:gradle:1.30.0' // Crashlytics plugin
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.google.gms:google-services:4.3.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
【问题讨论】:
-
请参考我的解决方案stackoverflow.com/a/70118366/8313412
标签: android firebase google-cloud-firestore crash