【问题标题】:How to make breakpoints in Runnable() break in Android studio?如何在 Android Studio 的 Runnable() 中设置断点?
【发布时间】:2016-04-30 12:02:42
【问题描述】:

我已经检查了很多相关的 SO 帖子,但无法找到我正在寻找的内容。我的问题非常简单明了。代码如下:

new Thread(new Runnable() {
    @Override
    public void run() {
            android.util.Log.d("Debug", "*****breakpoint******");
    }
}).start();

我在 android.util.Log.d() 处设置了一个断点,所以我知道它已被执行,但它永远不会中断。其他地方的断点工作正常。我在 Windows 10 上运行 Android Studio 1.5.1。我正在使用模拟器进行测试。

有人可以提供这方面的建议吗?

根据请求,以下分别是代码和logcat的截图:

【问题讨论】:

  • 你在logcat中得到“*****breakpoint******”吗?或者你能在里面添加更多代码吗?
  • @tinysunlight 是的,我在 logcat 中确实得到了“*****breakpoint******”,这就是为什么我说我知道它已被执行。
  • 能否提供断点截图?
  • @tinysunlight 我刚刚根据您的要求添加了两个屏幕截图。
  • Runnable 什么时候执行?应用程序启动后很快吗?我报告了一个bug about missing early breakpoints,显然是由连接调试器的竞争条件引起的。也许试试我的解决方法:在断点之前添加 1s 睡眠,看看它是否更可靠地被击中?

标签: java android debugging android-studio breakpoints


【解决方案1】:
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config1
            debuggable false
        }
        debug {
            minifyEnabled false
        }
    }

【讨论】:

  • 刚刚看了下断点。配置与您显示的相同。
  • 我刚刚试过了,还是不行。我刚刚尝试了一个完全不同的模拟器,问题仍然存在。
  • 其实android.util.Log.d(...)后面还有几行代码,我都设置了断点。他们都没有工作。非常感谢您在这里伸出援助之手。
  • 我刚刚意识到这发生在发布版本上,而不是调试版本上。
  • 在发布版本中,只有将 debuggable 设置为 true 时,所有断点才会起作用。
猜你喜欢
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
相关资源
最近更新 更多