Я следую совету , чтобы реализовать независимый код устройства Android (не приложения!) Для моих Android-приложений в отдельном проекте "Java Library Code". Это облегчает мне тестирование, так как я могу использовать стандартную компоновку проекта maven, поддержку Spring test и системы Continuous Build, как я привык. Я не хочу смешивать это в своем проекте приложения для Android, хотя это возможно.
Теперь мне интересно, как реализовать ведение журнала в этой библиотеке. Поскольку эта библиотека будет использоваться на устройстве Android, я бы хотел использовать android.util.Log
. Я добавил следующую зависимость в свой проект, чтобы получить недостающие пакеты / классы Android и зависимости:
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
Но эта библиотека просто содержит метод-заглушку (аналогично android.jar внутри android-sdk), поэтому использование android.util.Log
приводит к
java.lang.RuntimeException: Stub!
при запуске моих юнит-тестов. Как реализовать ведение журнала, которое работает на устройстве Android, но не выходит из строя снаружи (я не ожидаю, что оно будет работать, но не должно выходить из строя)?
Спасибо за любые советы
Клаус
Пока что я собираюсь обойти это исключение за пределами Android, но надеюсь, что есть лучшее решение.
try {
Log.d("me", "hello");
} catch (RuntimeException re) {
// ignore failure outside android
}