Древесина не входит в 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 which
class it's being called and use that class name as its tag
, Так как теги различаются
Если вы этого не сделаете, то у вас не будет записи в журналах, и сделайте это как можно скорее, как в oncreate
или лучше внутри класса приложения, так что сделайте это
Timber.plant(Timber.DebugTree());
Я столкнулся с той же проблемой, используя Kotlin и Android studio 3.6. Выполните следующие действия:
Добавьте следующее в build.gradle(Модуль: Приложение)
implementation 'com.jakewharton.timber:timber:4.7.1'
Инициализировать
Timber
в классе приложения:class MyApp : Application() { override fun onCreate() { super.onCreate() if(BuildConfig.DEBUG){ Timber.plant(Timber.DebugTree()) } } }
Добавьте класс приложения (
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.