28

我正在尝试在 Android Studio 中通过网络进行调试。我通过端口 5555 连接,通常可以逐步通过断点。但是执行一行代码通常需要几分钟,而另一件事是我看不到任何不是成员的变量。我看到的只是this对象,但没有来自方法内的变量。我该如何启用它?

在此处输入图像描述

如您所见,我在方法中,至少活动对象已初始化,但在变量监视器中不可见。

更新:

使用USB调试时问题仍然存在。没有局部变量可见,即使在调试时尝试评估表达式:

在此处输入图像描述

Android Studio 2.1、Gradle 2.1.0、Java 1.8

4

9 回答 9

19

有同样的问题。

Android Studio 中存在错误,请参阅https://code.google.com/p/android/issues/detail?id=93730

他们建议在 build.gradle (app) 中删除,这为我解决了这个问题。

android {
    buildTypes {
        debug {
            ...
            testCoverageEnabled true
        }
    }
}
于 2016-12-14T15:12:30.713 回答
11

在解决了同样的问题一段时间后,我意识到我正在运行发布版本而不是调试版本。

默认情况下,Android Studio 中可能不会打开构建变体窗口。转到工具窗口-> 构建变体。在 Build Variants 窗口中,选择适当的构建。

在您的 app.gradle 文件中,确保在您要调试的构建变体中将 debuggable 设置为 true:

android {

   // ...

   buildTypes {

      release {
         // ...
      }

      debug {
         debuggable true
      }

   }

   // ...

}

如果您想调试您的发布版本,请继续并添加debuggable true到您的发布版本中。

希望这可以帮助!

于 2019-03-04T23:35:55.250 回答
5

我尝试将 testCoverageEnabled 设置为 false,但这对我不起作用。在我的例子中,我为我的调试风格启用了 ProGuard,并且禁用它(即将 minifiyEnabled 设置为 false)是唯一让我能够在再次调试时看到我的局部变量的方法。

于 2018-03-05T21:51:46.913 回答
2

就我而言,这是因为我忘记了我的构建变体设置为release. 将变体切换回debug并正确重新运行会显示局部变量。

于 2019-06-20T22:30:52.117 回答
1

对我来说,我必须testCoverageEnabled像这样设置为 false:

android {
    buildTypes {
        debug {
            ...
            testCoverageEnabled false
        }
    }
}

当我将此设置为 true 时,我没有获得局部变量

于 2017-09-28T20:59:43.150 回答
0

虽然这不是这个问题的永久解决方案,但我最一致的修复(在尝试其他答案无济于事之后)只是重新启动我的计算机。

于 2017-06-06T15:46:20.287 回答
0

我尝试了某种 hit n trial,并使其与附件中的设置一起使用。仅供参考,使用最新版本的 Android Studio 3.3.1 和 gradle 版本 4.6。

在此处输入图像描述

在此处输入图像描述

于 2019-02-07T15:44:42.230 回答
-1

我有同样的麻烦。我完全重新安装了我的IDE,问题已经消失了。希望我的方法对你有所帮助。

于 2017-01-27T14:26:03.730 回答
-3

Java 1.8 不支持访问变量值。

将 Gradle 更新到 2.2.0-beta3 版本:

在你的 gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

在您的项目 build.gradle 文件中

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0-beta3'
}
于 2016-09-15T17:05:07.520 回答