【问题标题】:Error with tests in Android Studio when using ReLinker to load libraries使用 ReLinker 加载库时 Android Studio 中的测试出错
【发布时间】:2021-09-10 19:35:37
【问题描述】:

当我尝试运行我的单元测试时,ReLinker 正在抱怨。 我添加了 Bugsnag,它可以正常工作。后来我在这里添加 ReLinker:https://docs.bugsnag.com/platforms/android/faq/ 添加这两行后,我不再能够运行我的测试。

我的应用程序 onCreate 包含:

ReLinker.loadLibrary(this, "bugsnag-ndk")
        ReLinker.loadLibrary(this, "bugsnag-plugin-android-anr")
        Bugsnag.start(this, config)

每当我尝试使用 RobolectricTestRunner 运行测试时,都会收到以下错误:

[Robolectric] WARN: Android SDK 29 requires Java 9 (have Java 8). Tests won't be run on SDK 29 unless explicitly requested.
[Robolectric] WARN: Android SDK 30 requires Java 9 (have Java 8). Tests won't be run on SDK 30 unless explicitly requested.

Could not find 'bugsnag-ndk.dll'. Looked for: [armeabi-v7a], but only found: [java.util.regex.PatternSyntaxException: Unmatched closing ')' near index 10
lib\([^\\]*)\bugsnag-ndk.dll
          ^].
com.getkeepsafe.relinker.MissingLibraryException: Could not find 'bugsnag-ndk.dll'. Looked for: [armeabi-v7a], but only found: [java.util.regex.PatternSyntaxException: Unmatched closing ')' near index 10
lib\([^\\]*)\bugsnag-ndk.dll
          ^].
    at com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary(ApkLibraryInstaller.java:173)
    at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:180)
    at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136)
    at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:70)
    at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:51)
    at com.roardam.vvitas.Vvitas.onCreate(Vvitas.kt:19)
    at org.robolectric.android.internal.AndroidTestEnvironment.lambda$installAndCreateApplication$0(AndroidTestEnvironment.java:288)
    at org.robolectric.util.PerfStatsCollector.measure(PerfStatsCollector.java:86)
    at org.robolectric.android.internal.AndroidTestEnvironment.installAndCreateApplication(AndroidTestEnvironment.java:288)
    at org.robolectric.android.internal.AndroidTestEnvironment.setUpApplicationState(AndroidTestEnvironment.java:171)
    at org.robolectric.RobolectricTestRunner.beforeTest(RobolectricTestRunner.java:319)
    at org.robolectric.internal.SandboxTestRunner$2.lambda$evaluate$0(SandboxTestRunner.java:269)
    at org.robolectric.internal.bytecode.Sandbox.lambda$runOnMainThread$0(Sandbox.java:89)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

我添加了 ReLinker 和 Bugsnag:

implementation 'com.github.KeepSafe:ReLinker:1.4.3'
implementation 'com.bugsnag:bugsnag-android:5.+'

我不完全确定问题出在 ReLinker,但当我删除加载库的两行时,我能够运行测试。

如果我没有显示足够的代码,请告诉我,我会用任何需要的代码更新我的帖子。 谢谢。

【问题讨论】:

    标签: android kotlin testing bugsnag


    【解决方案1】:

    这里是 Bugsnag 支持团队的 John。

    正如通过您提出的支持票和更广泛的受众所讨论的那样,这看起来是一个 Relinker 问题,因为它在加载各种其他本地库时发生,而不仅仅是 Bugsnag。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      相关资源
      最近更新 更多