我关注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 开源项目镜像的链接(1,2)似乎表明 android 上 java.util.Logging 的默认处理程序委托(delegate)给 android.util.Log,所以在您的库应该能够只使用 java.util.logging api。
我找不到关于此行为的任何进一步文档
关于java - 为 Android 应用程序登录 "Java Library Code"库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5002019/