繁体   English   中英

木材在 Kotlin Android 中未登录

[英]Timber Not Logging in Kotlin Android

Timber 是一个很棒的 Android 登录库。 但在 Kotlin 类中,不输出任何内容。 我怎样才能解决这个问题?

MainActivity.kt 代码:

Timber.e("Timber Log 1")
Log.e("MainActivity", "Log 1")

Gradle:我尝试过常规的 Java Timber:

implementation 'com.jakewharton.timber:timber:4.7.1'

这个 Kotlin 特定的包装器:

implementation 'com.github.ajalt:timberkt:1.5.1'

结果相同。 两者都没有输出。 仅来自Log.e()

Timber 的第一步是按照文档中的说明种植树

行为是通过 Tree 实例添加的。 您可以通过调用 Timber.plant 安装实例。 应尽早安装树木。 应用程序的 onCreate 是最合乎逻辑的选择。

并使用debugTree

DebugTree implementation will automatically figure out from which class it's being called and use that class name as its tag DebugTree implementation will automatically figure out from which class it's being called and use that class name as its tag 由于标签不同

如果您不这样做,那么您将没有日志条目并尽快执行此操作,例如在oncreate或更好的应用程序类中,因此请执行此操作

Timber.plant(Timber.DebugTree());

我遇到了同样的问题,使用 Kotlin 和 Android studio 3.6 请按照以下步骤操作:

  1. 在 build.gradle(Module: App) 中添加以下内容

    implementation 'com.jakewharton.timber:timber:4.7.1'
  2. 在应用程序类中初始化Timber

     class MyApp : Application() { override fun onCreate() { super.onCreate() if(BuildConfig.DEBUG){ Timber.plant(Timber.DebugTree()) } } }
  3. 将应用程序类 ( MyApp ) 添加到清单 (AndroidManifest.xml)

     <application android:name=".MyApp"

现在您可以使用木材: Timber.i("Timber logs")

如果您愿意,也可以使用自定义标签: Timber.tag("Yo").I("used custom tag for logs")

可能迟到了,但我的问题是我的手机设置为“仅充电”而不是“文件传输”。 显然我被允许构建和运行,但日志被阻止

对我来说,当我评论调试检查时它开始出现

//        if (BuildConfig.DEBUG) {
            Timber.plant(new Timber.DebugTree());
//        }

我不知道为什么这会起作用,因为选择构建变量仅用于调试。

就我而言,这是错误的 BuildConfig 导入

import org.koin.android.BuildConfig

但我的应用程序有

import com.company.example.BuildConfig

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM