Java Android Studio中未显示日志记录和崩溃堆栈跟踪

Java Android Studio中未显示日志记录和崩溃堆栈跟踪,java,android,debugging,android-studio,Java,Android,Debugging,Android Studio,我试图在我的设备上调试一个应用程序,但调试程序有点问题。我尝试测试记录器,看看它是否会像这样写入Logcat: Log.d("MyActivity", "Testing logging..."); 但使用app:com.myapp.debug过滤器,Logcat中不会显示任何内容。当我简单地按字符串过滤(使用我的应用程序名称)时,会出现此问题,但条目如下所示: 01-08 13:45:07.468 29748-29748/? D/MyActivity﹕ Testing logging...

我试图在我的设备上调试一个应用程序,但调试程序有点问题。我尝试测试记录器,看看它是否会像这样写入Logcat:

Log.d("MyActivity", "Testing logging...");
但使用
app:com.myapp.debug
过滤器,Logcat中不会显示任何内容。当我简单地按字符串过滤(使用我的应用程序名称)时,会出现此问题,但条目如下所示:

01-08 13:45:07.468  29748-29748/? D/MyActivity﹕ Testing logging...
这个问号是否意味着应用程序中的某些内容没有传递到调试器?这可能与调试器的第二个问题有关:


我一直在调试一个崩溃,每次它发生时,手机都会简单地显示“应用程序没有响应”消息,然后关闭当前活动,断开调试器的连接,应用程序会继续与以前的活动一起运行。没有堆栈跟踪,没有关于崩溃的信息,什么都没有。我是否需要在Android Studio中设置一些东西才能使其正常工作?

我认为这是相同的adb或文件管理器问题。 首先,取下所有过滤器。
重新启动adb-输入终端adb kill server和adb start server。

我也遇到了这个问题,我找不到合适的答案。 相反,我做了一个变通,用Thread.setDefaultUncaughtExceptionHandler()捕捉错误,并用Log.e()记录它

我用这门课来做这件事

  public class ExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler {
   private final String LINE_SEPARATOR = "\n";
   public static final String LOG_TAG = ExceptionHandler.class.getSimpleName();

  @SuppressWarnings("deprecation")
  public void uncaughtException(Thread thread, Throwable exception) {
    StringWriter stackTrace = new StringWriter();
    exception.printStackTrace(new PrintWriter(stackTrace));

    StringBuilder errorReport = new StringBuilder();
    errorReport.append(stackTrace.toString());

    Log.e(LOG_TAG, errorReport.toString());

    android.os.Process.killProcess(android.os.Process.myPid());
    System.exit(10);
   }
}
然后在我的活动中

   @Override
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    /**
     * catch unexpected error
     */
    Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler());

    setContentView(R.layout.activity_main);

    //other codes
   }

希望这能有所帮助。

可能您的google analytics“ga_reportUncaughtExceptions”设置为true,将其转换为false可修复问题,并将异常打印到logcat。有关详细信息,请参阅下面的链接


我经常发现,基于包的过滤由于某种原因会阻止日志输出显示在logcat中。为了诊断ANR,我建议:删除logcat中的所有过滤,并将日志级别切换为警告(而不是错误)。然后滚动查看输出,查看是否显示ANR的任何详细信息。我不确定,但我有类似的问题。只需单击运行->恢复..当我通过我的应用程序包进行筛选时,我遇到了与AS 1.0类似的问题。我在Logcat中没有看到任何内容。移除过滤器会显示设备中的所有内容。谢谢各位,是的,字符串过滤似乎正在工作。当我崩溃时,我仍然没有直接进入堆栈跟踪,但至少我可以在Logcat中看到跟踪,所以这是很重要的!除非有人知道发生了什么,否则最好不要回答这个问题。感谢这个有用的课程。这是非常有用的,几个星期以来一直在努力解决这个问题。感谢你指出过滤器,我的过滤器似乎被意外设置为Firebase,所以几乎没有日志出现在屏幕上LogCat@NeonWarge你救了我一天!!到底为什么过滤器设置为firebase?