调试时找不到局部变量

Len*_*ena 9 debugging android android-studio build.gradle

我正在尝试使用选项调试我的应用程序Java Field Watchpoints。我的变量第一次出现在我的代码中(它的初始化)时被发现,但在那之后我遇到了这个错误:

找不到局部变量“变量名”

然后我无法遵循它的修改。

我一直在四处搜索并修改我的gradle文件,如下所示:

   buildTypes {
       release {
           minifyEnabled false
           proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
       }
       debug {
           minifyEnabled false
           debuggable true
           testCoverageEnabled = true
       }
   }
Run Code Online (Sandbox Code Playgroud)

我的活动构建变体是debug(不是发布)所以错误不是来自这里。我正在使用Android Studio 3.6Canary 11

有没有人遇到同样的问题?

小智 -1

您的变量超出了范围:如果它是在本地范围内声明的,例如循环或 if else 或 try 块或函数内带有大括号的任何类型的块。因此,如果在初始化变量之后,下一个执行的语句位于该块之外,则您的变量将不再可见且无法访问(这就是 Java 中局部变量的工作方式)。所以不是一个错误。要验证您可以在类级别声明变量并在本地块中进行初始化。该变量仍然可以在本地块之外访问。

class MyClass{
  private MyObject myObject;

  public void myFunction(){
          if(....){
            myObject = new MyObject();
          }else{
          }
  }
} 
Run Code Online (Sandbox Code Playgroud)