Древесина не входит в Android Kotlin

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'

А это Котлин, конкретная оберткаimplementation 'com.github.ajalt:timberkt:1.5.1'

Тот же результат. Нет вывода ни с одним. Только из Log.e()

6 ответов

Первый шаг Timber - посадить дерево, как указано в документации.

Поведение добавляется через экземпляры дерева. Вы можете установить экземпляр, вызвав Timber.plant. Установка деревьев должна быть сделана как можно раньше. OnCreate вашего приложения является наиболее логичным выбором.

И использовать debugTree

DebugTree implementation will automatically figure out from whichclass 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(Модуль: Приложение)

    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: Timber.i("Timber logs")

Также можете использовать собственные теги, если хотите: Timber.tag("Yo").I("used custom tag for logs")

В моем случае это был неправильный импорт BuildConfig

      import org.koin.android.BuildConfig

но у моего приложения есть

      import com.company.example.BuildConfig

Вероятно, опоздал на вечеринку, но моя проблема заключалась в том, что мой телефон был настроен на «Только зарядка», а не на «передачу файлов». Видимо мне разрешили строить и запускать, но логи были заблокированы

Для меня это начало появляться, когда я прокомментировал проверку отладки

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

Я не знаю, почему это работает, потому что вариант сборки выбран только для отладки.

Проверьте инициализацию. Убедитесь, что вы правильно инициализировали Timber в своем приложении. Обычно это делается вonCreateметод вашегоApplicationсорт.

         class MyApplication : Application() {
       override fun onCreate() {
           super.onCreate()
           if (BuildConfig.DEBUG) {
               Timber.plant(Timber.DebugTree())
           }
       }
   }

Просто убедитесь, что вы импортируетеBuildConfigиз правильного места. Правильный способ: должен быть соответствующим образом настроен в вашем проекте.Gradle filesнапримерimport com.example.appname.BuildConfig. Если все еще не работает, попробуйтеimport androidx.viewbinding.BuildConfig

Не забудьте убедиться, что конфигурация сборки вашего приложения правильно настроена в вашемbuild.gradleфайлы, чтобы убедиться, чтоBuildConfig.DEBUGведет себя так, как ожидалось. Конфигурации отладки и выпуска должны быть соответствующим образом настроены в файлах Gradle вашего проекта.

Убедитесь, что между словами в теге нет пробелов. В противном случае тег, который вы добавляете в logcat, будет отображаться только в соответствии с первым словом. Короче говоря, пространство не учитывается с помощью logcat.

Другие вопросы по тегам