Этот вопрос имеет особое отношение к утечке из библиотеки.
Я получаю следующую ошибку при запуске androidTest
Started running tests
Test running failed: Instrumentation run failed due to 'java.lang.NoSuchMethodError'
Empty test suite.
Эта проблема появляется только при попытке добавить LeakUploadService вbugsnag
private void installLeakCanary() {
sRefWatcher = LeakCanary.refWatcher(this)
.listenerServiceClass(LeakUploadService.class)
.watchDelay(DELAY, TimeUnit.SECONDS) // delay sending the bug report to avoid blocking the UI thread
.buildAndInstall();
}
Но если я использую следующую строку вместо вышеуказанной функции
LeakCanary.install(this);
Все мои тесты выполняются без проблем.
Я звонюследующий код в моем основном классе приложения onCreate, который расширяется из MultiDexApplication
if (LeakCanary.isInAnalyzerProcess(this)) { // Do this before normal normal app init code
// This process is dedicated to LeakCanary for heap analysis.
// You should not init your app in this process.
return;
}
installLeakCanary();
Bugsnag.init(this);
Также я отключаю утечку для проверки
configurations.all { config ->
if (config.name.contains('UnitTest') || config.name.contains('AndroidTest')) {
config.resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.squareup.leakcanary' && details.requested.name == 'leakcanary-android') {
details.useTarget(group: details.requested.group, name: 'leakcanary-android-no-op', version: details.requested.version)
}
}
}
}
В моем AndroidManifest.xml я добавил
<service android:name="com.atheer.argon.LeakUploadService"/>
<meta-data
android:name="com.bugsnag.android.API_KEY"
android:value="xxxxxxxxxxxxxxxxxxxxxxx"/>
Итак, мой вопрос: почему добавление класса LeakUploadService для сообщения об утечках памяти для ошибок, которые мои тесты больше не запускают?Чего мне не хватает?