【问题标题】:How to print to Android Studio Logcat from (fork of) Third Party Library?如何从第三方库(分支)打印到 Android Studio Logcat?
【发布时间】:2021-02-02 18:00:11
【问题描述】:

我目前正在使用 Android 第三方库的分支,并希望将一些信息打印到 Android Studio 控制台 (Logcat)。通常你可以简单地调用类似的东西:

Log.i("mytag", "my message here");

但这在从库调用时似乎不起作用。有谁知道如何从库中打印到 Android Studio Logcat 控制台?任何指向我正确方向的提示或提示将不胜感激!谢谢

更新:这是一个用于 React-Native 的原生 Java/Android 库。我正在使用的库是 react-native-webview 的一个分支。我不知道这些信息是否特别重要,但就上下文而言,我认为我应该提及我正在使用的具体内容。

【问题讨论】:

  • “这似乎不起作用”是什么意思?
  • 如何发布您尝试过的内容,例如不显示的日志?另外,您是在模拟器还是真实设备上测试它?某些设备因某种原因关闭了日志。

标签: java android android-studio


【解决方案1】:

如果默认的方法不适合您,有办法做到这一点。一种是使用自定义Logger 或使用通过此类静态工厂自动创建的

Logger.getLogger(String name, String localizationBundle)

Logger.getLogger(String name))。

然后使用它的log 方法,该方法对于各种情况都有很多重载。它的用法非常简单:

// usual name for the logger is the name of the main class of the library

private val logger = Logger.getLogger(MyLibraryMainClass::class.java.name)
logger.log(logLevel, message) //where logLevel is Level.WARNING or Level.INFO etc..

Log.println(int priority, String tag, String msg) 也可以工作。

还可以尝试检查您的 logcat 的设置 - 它可能配置错误。你也可以尝试通过adb logcat 命令来实现。

【讨论】:

    【解决方案2】:

    我假设这是一个本地库(C、C++)。如果是这样,您可以采用与编写 android NDK 库的人类似的方法。您需要包括

    #include <android/log.h>
    

    然后您将能够访问__android_log_print 方法来打印日志语句。您应该能够在带有标记的 logcat 中看到此语句。这是原型:

    int __android_log_print(int prio, const char *tag,  const char *fmt, ...);
    

    更多详情在这里:https://developer.android.com/ndk/reference/group/logging

    一个例子是:

    __android_log_print(ANDROID_LOG_DEFAULT, "Your library tag", "Your log statement");
    

    【讨论】:

    • 不,它是一个 Java 库。具体来说,它是 React-Native 的 Java/Android 库的一个分支:react-native-webview
    猜你喜欢
    • 2017-02-15
    • 1970-01-01
    • 2016-10-09
    • 2021-05-27
    • 1970-01-01
    • 2019-11-12
    • 2016-04-09
    • 2017-02-17
    • 1970-01-01
    相关资源
    最近更新 更多