Skip to content

java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.firestore.local.SQLiteSchema$$Lambda$7" #1125

@Magz8984

Description

@Magz8984

Environment

  • Android Studio version: 3.5.3
  • Firebase Component: Firestore
  • Component version: 21.3.1

Problem

On android version 6 and 5 firestore causes up crash due to an internal error. I have tried to replicate the issue on quickstart but it seems to work on quickstart. However, I cannot seem to find the problem in my project for 2 days now. I will really appreciate help.

Steps to reproduce:

  • Get firebase instance id on Main Activity perform a simple collection query
  • Run apk on android version 6 or less

Relevant Code:

App Gradle File

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'


android {
    compileSdkVersion 29
    defaultConfig {
        multiDexEnabled true
        applicationId "chessbet.app.com"
        minSdkVersion 16
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        externalNativeBuild {
            ndkBuild {
                arguments '-j8'
            }
        }
    }
    packagingOptions {
        pickFirst 'META-INF/*'
    }
    buildTypes {
        release {
            minifyEnabled false
        }
        debug {
            minifyEnabled false
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }

    externalNativeBuild {
        ndkBuild {
            path file('src/main/cpp/Android.mk')
        }
    }

    buildTypes.each {
        it.buildConfigField("String", "CLOUD_FUNCTIONS_URL", cloudFunctionsURL)
        it.buildConfigField("String", "ADD_MOB_UNIT_ID", adUnitId)
        it.buildConfigField("String", "ADD_MOB_TEST_UNIT_ID", testAdUnitId)
        it.buildConfigField("String", "AD_MOB_APP_ID", adMobAppId)
    }

    lintOptions {
        abortOnError false
    }
}
dependencies {
    implementation 'androidx.multidex:multidex:2.0.1'
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //noinspection GradleCompatible
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation "androidx.core:core:1.1.0"
    implementation 'com.google.android.material:material:1.2.0-alpha03'
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation "androidx.preference:preference:1.1.0"
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation "androidx.annotation:annotation:1.1.0"
    implementation 'com.jakewharton:butterknife:10.1.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
    implementation 'com.google.firebase:firebase-auth:19.2.0'
    implementation 'com.google.firebase:firebase-database:19.2.0'
    implementation 'com.google.firebase:firebase-firestore:21.3.1'
    implementation 'com.firebaseui:firebase-ui-firestore:6.1.0'
    implementation 'com.firebaseui:firebase-ui-database:6.1.0'

    implementation 'com.google.firebase:firebase-storage:19.1.0'
    implementation "com.squareup.okhttp3:okhttp:4.2.1"
    testImplementation "com.squareup.okhttp3:mockwebserver:4.2.1"
    implementation 'com.github.QuadFlask:colorpicker:0.0.13' // Color picker
    implementation 'com.github.Magz8984:chess-engine-dev:a7f8df6b34'
    implementation 'de.hdodenhof:circleimageview:3.0.0'
    implementation 'com.github.bumptech.glide:glide:4.9.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
    implementation 'com.android.support:cardview-v7:29.0.0'
    implementation 'com.google.guava:guava:27.1-jre'
    implementation 'com.google.code.gson:gson:2.8.5'
    implementation 'com.github.erehmi:countdowntask:1.0.1' // Count Down Timer
    implementation 'com.github.jorgecastilloprz:fabprogresscircle:1.01@aar' // Fab Progress Bar
    implementation 'com.google.firebase:firebase-messaging:20.1.0'
    implementation 'com.michaelmuenzer.android:ScrollableNumberPicker:0.2.2' // Range Picker
    implementation "com.andkulikov:transitionseverywhere:1.8.1" // Transition everywhere
    implementation 'com.google.firebase:firebase-analytics:17.2.1'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
    implementation 'com.google.android.gms:play-services-ads:18.3.0'
    implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
    implementation 'com.github.GrenderG:Toasty:1.4.2'
}

task copyToAssets(type: Copy) {
    from('build/intermediates/ndkBuild/release/obj/local') {
        include '*/stockfish'
    }
    into 'src/main/assets'
}
tasks.withType(JavaCompile) {
    t -> t.dependsOn copyToAssets
}

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

Code Causing Crash

Query query = db.collection(AccountAPI.ACCOUNT_COLLECTION).whereEqualTo(OWNER_FIELD, user.getUid());
            query.get().addOnCompleteListener(task -> {
                if(task.isSuccessful()){
                    for (QueryDocumentSnapshot document : Objects.requireNonNull(task.getResult())){
                        accountReference = document.getReference();
                        currentAccount = document.toObject(Account.class);
                        currentAccount.setId(accountReference.getId());
                        accountListener.onAccountReceived(currentAccount);
                        // Overkill we already have a listener on main activity
                        EventBroadcast.get().broadCastAccountUpdate();
                    }
                }
                else {
                    Log.d(TAG, Objects.requireNonNull(Objects.requireNonNull(task.getException()).getMessage()));
                }
            });

Error Trace

    java.lang.RuntimeException: Internal error in Cloud Firestore (21.3.1).
        at com.google.firebase.firestore.util.AsyncQueue.lambda$panic$3(com.google.firebase:firebase-firestore@@21.3.1:529)
        at com.google.firebase.firestore.util.AsyncQueue$$Lambda$3.run(com.google.firebase:firebase-firestore@@21.3.1)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5254)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
     Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/firestore/local/SQLiteSchema$$Lambda$7;
        at com.google.firebase.firestore.local.SQLiteSchema.ensureSequenceNumbers(com.google.firebase:firebase-firestore@@21.3.1:423)
        at com.google.firebase.firestore.local.SQLiteSchema.runMigrations(com.google.firebase:firebase-firestore@@21.3.1:127)
        at com.google.firebase.firestore.local.SQLiteSchema.runMigrations(com.google.firebase:firebase-firestore@@21.3.1:78)
        at com.google.firebase.firestore.local.SQLitePersistence$OpenHelper.onCreate(com.google.firebase:firebase-firestore@@21.3.1:306)
        at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:251)
        at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
        at com.google.firebase.firestore.local.SQLitePersistence.start(com.google.firebase:firebase-firestore@@21.3.1:129)
        at com.google.firebase.firestore.core.FirestoreClient.initialize(com.google.firebase:firebase-firestore@@21.3.1:269)
        at com.google.firebase.firestore.core.FirestoreClient.lambda$new$0(com.google.firebase:firebase-firestore@@21.3.1:108)
        at com.google.firebase.firestore.core.FirestoreClient$$Lambda$1.run(com.google.firebase:firebase-firestore@@21.3.1)
        at com.google.firebase.firestore.util.AsyncQueue.lambda$enqueue$2(com.google.firebase:firebase-firestore@@21.3.1:431)
        at com.google.firebase.firestore.util.AsyncQueue$$Lambda$2.call(com.google.firebase:firebase-firestore@@21.3.1)
        at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor.lambda$executeAndReportResult$1(com.google.firebase:firebase-firestore@@21.3.1:317)
        at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor$$Lambda$2.run(com.google.firebase:firebase-firestore@@21.3.1)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor$DelayedStartFactory.run(com.google.firebase:firebase-firestore@@21.3.1:224)
        at java.lang.Thread.run(Thread.java:818)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.firestore.local.SQLiteSchema$$Lambda$7" on path: DexPathList[[zip file "/data/app/chessbet.app.com-2/base.apk"],nativeLibraryDirectories=[/data/app/chessbet.app.com-2/lib/x86, /vendor/lib, /system/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
        at com.google.firebase.firestore.local.SQLiteSchema.ensureSequenceNumbers(com.google.firebase:firebase-firestore@@21.3.1:423) 
        at com.google.firebase.firestore.local.SQLiteSchema.runMigrations(com.google.firebase:firebase-firestore@@21.3.1:127) 
        at com.google.firebase.firestore.local.SQLiteSchema.runMigrations(com.google.firebase:firebase-firestore@@21.3.1:78) 
        at com.google.firebase.firestore.local.SQLitePersistence$OpenHelper.onCreate(com.google.firebase:firebase-firestore@@21.3.1:306) 
        at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:251) 
        at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163) 
        at com.google.firebase.firestore.local.SQLitePersistence.start(com.google.firebase:firebase-firestore@@21.3.1:129) 
        at com.google.firebase.firestore.core.FirestoreClient.initialize(com.google.firebase:firebase-firestore@@21.3.1:269) 
        at com.google.firebase.firestore.core.FirestoreClient.lambda$new$0(com.google.firebase:firebase-firestore@@21.3.1:108) 
        at com.google.firebase.firestore.core.FirestoreClient$$Lambda$1.run(com.google.firebase:firebase-firestore@@21.3.1) 
        at com.google.firebase.firestore.util.AsyncQueue.lambda$enqueue$2(com.google.firebase:firebase-firestore@@21.3.1:431) 
        at com.google.firebase.firestore.util.AsyncQueue$$Lambda$2.call(com.google.firebase:firebase-firestore@@21.3.1) 
        at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor.lambda$executeAndReportResult$1(com.google.firebase:firebase-firestore@@21.3.1:317) 
        at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor$$Lambda$2.run(com.google.firebase:firebase-firestore@@21.3.1) 
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
        at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor$DelayedStartFactory.run(com.google.firebase:firebase-firestore@@21.3.1:224) 
        at java.lang.Thread.run(Thread.java:818) 
    	Suppressed: java.lang.NoClassDefFoundError: com.google.firebase.firestore.local.SQLiteSchema$$Lambda$7
        at dalvik.system.DexFile.defineClassNative(Native Method)
 

Help will be greatly appreciated

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions