mardi 23 février 2021

Internal error in Cloud Firestore (22.1.0) when running instrumentation test

Every library is updated to the latest version. This SO thread does not give an satisfying answer. The error only occurs when running the test, the actual App is fine.

@InternalCoroutinesApi
@ExperimentalCoroutinesApi
@RunWith(AndroidJUnit4::class)
class HomeTest {

    @get:Rule
    var reportHelper: ReportHelper? = Factory.getReportHelper()

    @get:Rule
    var activityRule = ActivityTestRule(MainActivity::class.java)

    // Executes tasks in a synchronous [TaskScheduler]
    @get:Rule
    var syncTaskExecutorRule = SyncTaskExecutorRule()

    private val resources = ApplicationProvider.getApplicationContext<Context>().resources

    @Before
    fun goToHomeScreen() {
        onView(withId(R.id.navigation_home)).perform(ViewActions.click())
    }

    @Test
    fun scrollToNextVideo() {
        onView(withId(R.id.recycler)).perform(swipeUp())
    }

    @After
    fun TearDown() {
        reportHelper?.label("Stopping App")
    }
}

Dependencies:

implementation "com.google.firebase:firebase-firestore:22.1.0"
implementation "com.google.firebase:firebase-database-ktx:19.6.0"
implementation "com.google.firebase:firebase-storage:19.2.1"
implementation "com.firebaseui:firebase-ui-storage:4.3.2"

Stacktrace:

Testing started at 18:40 ...

02/23 18:40:39: Launching 'HomeTest' on samsung SM-A515F.
App restart successful without requiring a re-install.
Running tests

$ adb shell am instrument -w -m  --no-window-animation  -e debug false -e class 'eu.theappfactory.someapp.data.ui.home.HomeTest' eu.theappfactory.someapp.acc.test/androidx.test.runner.AndroidJUnitRunner
Connected to process 981 on device 'samsung-sm_a515f-R58N52ZCJZL'.

Started running tests


java.lang.RuntimeException: Internal error in Cloud Firestore (22.1.0).
    at com.google.firebase.firestore.util.AsyncQueue.lambda$panic$3(AsyncQueue.java:534)
    at com.google.firebase.firestore.util.AsyncQueue$$Lambda$3.run(Unknown Source:2)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:237)
    at android.app.ActivityThread.main(ActivityThread.java:8167)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
Caused by: java.lang.NoSuchMethodError: No static method registerDefaultInstance(Ljava/lang/Class;Lcom/google/protobuf/GeneratedMessageLite;)V in class Lcom/google/protobuf/GeneratedMessageLite; or its super classes (declaration of 'com.google.protobuf.GeneratedMessageLite' appears in /data/app/eu.theappfactory.someapp.acc.test-K43eWkkKbA6iBOHgciWAfA==/base.apk)
    at com.google.firestore.v1.ListenRequest.<clinit>(ListenRequest.java:849)
    at com.google.firestore.v1.ListenRequest.getDefaultInstance(ListenRequest.java:854)
    at com.google.firestore.v1.FirestoreGrpc.getListenMethod(FirestoreGrpc.java:396)
    at com.google.firebase.firestore.remote.WatchStream.<init>(WatchStream.java:61)
    at com.google.firebase.firestore.remote.Datastore.createWatchStream(Datastore.java:115)
    at com.google.firebase.firestore.remote.RemoteStore.<init>(RemoteStore.java:167)
    at com.google.firebase.firestore.core.MemoryComponentProvider.createRemoteStore(MemoryComponentProvider.java:72)
    at com.google.firebase.firestore.core.ComponentProvider.initialize(ComponentProvider.java:135)
    at com.google.firebase.firestore.core.FirestoreClient.initialize(FirestoreClient.java:258)
    at com.google.firebase.firestore.core.FirestoreClient.lambda$new$0(FirestoreClient.java:105)
    at com.google.firebase.firestore.core.FirestoreClient$$Lambda$1.run(Unknown Source:8)
    at com.google.firebase.firestore.util.AsyncQueue.lambda$enqueue$2(AsyncQueue.java:436)
    at com.google.firebase.firestore.util.AsyncQueue$$Lambda$2.call(Unknown Source:2)
    at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor.lambda$executeAndReportResult$1(AsyncQueue.java:322)
    at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor$$Lambda$2.run(Unknown Source:4)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at com.google.firebase.firestore.util.AsyncQueue$SynchronizedShutdownAwareExecutor$DelayedStartFactory.run(AsyncQueue.java:229)
    at java.lang.Thread.run(Thread.java:919)

Test running failed: Process crashed.
Tests ran to completion.

Aucun commentaire:

Enregistrer un commentaire