这是我第一次在我的项目中添加任何模块。我在我的项目中添加了 android vitamio 。除了播放/暂停触摸监听器之外,所有功能都正常。看来代码写得对。我也尝试过将侦听器内联,但没有成功。但是,当我调试代码并逐行执行时,我可以看到代码按预期运行。我还将 log.d() 命令放入 MediaController 类中以跟踪执行情况,但如果打印 vitamio 模块,则类中不会写入任何日志命令。我想知道添加的模块的日志命令是否不会在我的主项目的日志命令所在的同一窗口中打印。有人可以对此提出建议吗?
这些模块日志是整个项目的一部分。仅当模块发送特定日志时,您才可以过滤并显示特定日志
当我使用
android.util.Log
在应用程序模块中打印日志并使用 timber.log.Timber
在另一个库/模块中打印时,我遇到了类似的问题。
我的意思是,由于 Gradle 的
implementation
关键字配置而不是后者中的 api
关键字,应用程序模块无法访问单独的库/模块依赖项(如 Timber)。所以我忘记统一它们并使用两个不同的 API 进行日志记录。
第一个解决方案是将
implementation
关键字更改为api
,以表示单独的库/模块中的Timber依赖项(但是您需要注意它,因为库/模块中基于implementation
的配置代表构建-有利于您的 APK 的时间优化,添加 api
会增加一些复杂性,如果没有重要的目的可访问,请尽量避免依赖它。
另一种(轻量级)解决方案只是确保仅使用一个 API 日志记录标准。例如,如果您使用:
Log.d(TAG, "Print something from the app module")
因此,您需要在库/单独的模块中使用相同类型的日志记录,而不是 Timber 的日志记录:
Log.d(TAG, "Print something from a different module")
其他情况:
如果您的应用程序级别可以从另一个模块访问 Timber 依赖项,则可以在两个模块中使用它。