java - 为 Android 应用程序登录 "Java Library Code"库

标签 java android logging

我关注advice在单独的“Java 库代码”项目中为我的 Android 应用程序实现 Android 设备(不是应用程序!)独立库代码。这让我的测试更容易,因为我可以按照我习惯的方式使用标准的 Maven 项目布局、Spring 测试支持和连续构建系统。我不想将它混入我的 Android 应用程序项目中,尽管这可能是可能的。

我现在想知道如何在这个库中实现日志记录。因为这个库将在 Android 设备上使用,所以我想使用 android.util.Log。我将 followind 依赖项添加到我的项目中以获取缺少的 Android 包/类和依赖项:

<dependency>
    <groupId>com.google.android</groupId>
    <artifactId>android</artifactId>
    <version>2.2.1</version>
    <scope>provided</scope>
</dependency>

但是这个库只包含 stub 方法(类似于android-sdk中的android.jar),因此使用android.util.Log会产生

java.lang.RuntimeException: Stub!

在运行我的单元测试时。我如何实现在 Android 设备上工作但在外部不会失败的日志记录(我不希望它工作,但它一定不会失败)?

谢谢大家的建议
克劳斯


现在我正在使用解决方法来捕获 android 之外的异常,但希望有更好的解决方案。

try {
    Log.d("me", "hello");
} catch (RuntimeException re) {
    // ignore failure outside android
}

最佳答案

这两个指向 android 开源项目镜像的链接(12)似乎表明 android 上 java.util.Logging 的默认处理程序委托(delegate)给 android.util.Log,所以在您的库应该能够只使用 java.util.logging api。

我找不到关于此行为的任何进一步文档

关于java - 为 Android 应用程序登录 "Java Library Code"库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5002019/

相关文章:

java - 需要帮助在使用基本适配器的 ListView 上设置点击事件

delphi - FastMM4,如何读取日志文件?

java - web.xml中debug是什么意思

java - Eclipse,Java 项目 - 如何添加文件夹名称是包名称一部分的源文件夹?

java - 彻底销毁 Spring Application Context

java - 组织 firebase 数据

java - 如何在java中合并来自两个不同数据库的两个不同结果集

android - 如何将内部 Android adb 连接到自身

android - 如何在 Chromecast App 中重新连接 Activity 时处理 GoogleApiClient 实例?

c# - EnterpriseLibrary 记录器错误 : Object synchronization method was called from an unsynchronized block of code