Android Espresso AppNotIdleException 与 Facebook SDK

2024-04-26

当我在清单中添加 Facebook SDK 和 applicationId 时,Espresso 测试不起作用 如果类中有多个测试方法,则错误仅发生在第一个测试上

 <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id" />

导致 AppNotIdleException 异常

E/TestRunner: androidx.test.espresso.AppNotIdleException: Looped for 2 iterations over 60 SECONDS. The following Idle Conditions failed .
        at dalvik.system.VMStack.getThreadStackTrace(Native Method)
        at java.lang.Thread.getStackTrace(Thread.java:1538)
        at androidx.test.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:94)
        at androidx.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:57)
        at androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:316)
        at androidx.test.espresso.ViewInteraction.desugaredPerform(ViewInteraction.java:177)
        at androidx.test.espresso.ViewInteraction.perform(ViewInteraction.java:118)

如果我删除com.facebook.sdk.ApplicationId从清单来看测试正常运行

安卓测试版本:

ext {
        kotlin_version = '1.3.31'
        koin_version = '2.0.0-rc-2'
        nav_version = '2.0.0'
        arch_version = '2.0.1'
        retrofit_version = '2.5.0'
        lifecycle_version = '2.0.0'
        glide_version = '4.9.0'
        espresso_version = '3.1.1'
    }
//  Facebook
    implementation 'com.facebook.android:facebook-login:4.42.0'

// Android test
    androidTestImplementation "androidx.arch.core:core-testing:$lifecycle_version"
    androidTestImplementation 'androidx.test:runner:1.1.1'
    androidTestImplementation 'androidx.test:rules:1.1.1'
    androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version"
    androidTestImplementation "androidx.test.espresso:espresso-intents:$espresso_version"
    androidTestImplementation 'androidx.test:core:1.1.0'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation "org.koin:koin-test:$koin_version"
    androidTestImplementation "org.mockito:mockito-android:2.25.0"
    androidTestImplementation 'com.squareup.okhttp3:mockwebserver:3.14.1'

    // Unit test
    testImplementation 'junit:junit:4.12'
    testImplementation "androidx.test:core:1.1.0"
    testImplementation "androidx.arch.core:core-testing:$lifecycle_version"
    testImplementation "org.koin:koin-test:$koin_version"
    testImplementation "org.mockito:mockito-core:2.27.0"
    testImplementation 'com.squareup.okhttp3:mockwebserver:3.14.1'

我遇到了同样的问题,并通过将其放入我的 AndroidManifest.xml 中来修复它:

<application ...>
    <meta-data android:name="com.facebook.sdk.AutoInitEnabled" android:value="false"/>
</application>

附加信息:FB GDPR 合规性 https://developers.facebook.com/docs/app-events/gdpr-compliance/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Espresso AppNotIdleException 与 Facebook SDK 的相关文章

随机推荐