我将木材依赖项添加到我的Java Core Library Module build.gradle文件中:
implementation 'com.jakewharton.timber:timber:4.6.0'虽然它在gradle同步时没有给出错误,但我无法在Core库中看到或使用Timber类。
发布于 2019-05-17 17:08:02
如果任何人在看Timber (没有android依赖)的多模块android项目。使用timber-jdk,如下所示。
在项目的build.gradle文件中。
allprojects {
repositories {
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
}
}在单个模块build.gradle文件中(例如:域或远程模块)
implementation "com.jakewharton.timber:timber-jdk:5.0.0-SNAPSHOT"有了这个,你应该能够在不依赖安卓框架的情况下实现Timber
发布于 2020-07-11 04:09:34
如果你有多模块项目,你可以在纯Java/Kotlin中使用Timber,只涉及一点抽象,不需要外部库。
Kotlin和Koin的示例:
纯kotlin模块中的创建一个大的冒名顶替者,Timber.kt:
interface ILogger {
fun d(message: String)
fun e(message: String)
fun e(throwable: Throwable, message: String)
fun i(message: String)
}
object Timber: ILogger, KoinComponent {
private val logger: ILogger by inject()
override fun d(message: String) = logger.d(message)
override fun e(message: String) = logger.e(message)
override fun e(throwable: Throwable, message: String) = logger.e(throwable, message)
override fun i(message: String) = logger.i(message)
}app模块中的创建TimberLogger.kt:
import timber.log.Timber
class TimberLogger : ILogger {
override fun d(message: String) = Timber.d(message) // this is real timber this time
override fun e(message: String) = Timber.e(message)
override fun e(throwable: Throwable, message: String) = Timber.e(throwable, message)
override fun i(message: String) = Timber.i(message)
}应用程序模块中的,将TimberLogger实现注入你的伪木材:
val appModule = module {
single<ILogger> { TimberLogger() }
}现在你可以从任何地方静态地调用Timber.d("message")。
如果你有使用木材的2+纯模块,考虑创建Utils模块并将其包含在其他模块中,这样它就可以在任何地方使用。
https://stackoverflow.com/questions/47117052
复制相似问题